Index: mojo/edk/system/core.cc |
diff --git a/mojo/edk/system/core.cc b/mojo/edk/system/core.cc |
index a534a2f8fe8427c7e8c2ec0db883110a10bf85b0..95cb703b4c48e7e71749e7197faddecda5fc0314 100644 |
--- a/mojo/edk/system/core.cc |
+++ b/mojo/edk/system/core.cc |
@@ -97,12 +97,6 @@ MojoHandle Core::AddHandle(Handle&& handle) { |
return handle_table_.AddHandle(std::move(handle)); |
} |
-// FIXME |
-MojoHandle Core::AddDispatcher(Dispatcher* dispatcher) { |
- return AddHandle( |
- Handle(RefPtr<Dispatcher>(dispatcher), MOJO_HANDLE_RIGHT_TRANSFER)); |
-} |
- |
MojoResult Core::GetDispatcher(MojoHandle handle, |
RefPtr<Dispatcher>* dispatcher) { |
if (handle == MOJO_HANDLE_INVALID) |
@@ -227,12 +221,10 @@ MojoResult Core::CreateMessagePipe( |
{ |
MutexLocker locker(&handle_table_mutex_); |
handle_pair = handle_table_.AddHandlePair( |
- Handle(dispatcher0.Clone(), MOJO_HANDLE_RIGHT_TRANSFER | |
- MOJO_HANDLE_RIGHT_READ | |
- MOJO_HANDLE_RIGHT_WRITE), |
- Handle(dispatcher1.Clone(), MOJO_HANDLE_RIGHT_TRANSFER | |
- MOJO_HANDLE_RIGHT_READ | |
- MOJO_HANDLE_RIGHT_WRITE)); |
+ Handle(dispatcher0.Clone(), |
+ MessagePipeDispatcher::kDefaultHandleRights), |
+ Handle(dispatcher1.Clone(), |
+ MessagePipeDispatcher::kDefaultHandleRights)); |
} |
if (handle_pair.first == MOJO_HANDLE_INVALID) { |
DCHECK_EQ(handle_pair.second, MOJO_HANDLE_INVALID); |
@@ -398,9 +390,9 @@ MojoResult Core::CreateDataPipe( |
MutexLocker locker(&handle_table_mutex_); |
handle_pair = handle_table_.AddHandlePair( |
Handle(producer_dispatcher.Clone(), |
- MOJO_HANDLE_RIGHT_TRANSFER | MOJO_HANDLE_RIGHT_WRITE), |
+ DataPipeProducerDispatcher::kDefaultHandleRights), |
Handle(consumer_dispatcher.Clone(), |
- MOJO_HANDLE_RIGHT_TRANSFER | MOJO_HANDLE_RIGHT_READ)); |
+ DataPipeConsumerDispatcher::kDefaultHandleRights)); |
} |
if (handle_pair.first == MOJO_HANDLE_INVALID) { |
DCHECK_EQ(handle_pair.second, MOJO_HANDLE_INVALID); |
@@ -551,12 +543,8 @@ MojoResult Core::CreateSharedBuffer( |
return result; |
} |
- // Note that shared buffer handles are duplicatable (by default). |
- MojoHandle h = AddHandle(Handle( |
- dispatcher.Clone(), MOJO_HANDLE_RIGHT_DUPLICATE | |
- MOJO_HANDLE_RIGHT_TRANSFER | |
- MOJO_HANDLE_RIGHT_READ | MOJO_HANDLE_RIGHT_WRITE | |
- MOJO_HANDLE_RIGHT_EXECUTE)); |
+ MojoHandle h = AddHandle( |
+ Handle(dispatcher.Clone(), SharedBufferDispatcher::kDefaultHandleRights)); |
if (h == MOJO_HANDLE_INVALID) { |
LOG(ERROR) << "Handle table full"; |
dispatcher->Close(); |
@@ -582,7 +570,9 @@ MojoResult Core::DuplicateBufferHandle( |
if (result != MOJO_RESULT_OK) |
return result; |
- MojoHandle new_handle = AddDispatcher(new_dispatcher.get()); |
+ // TODO(vtl): This should be done with the original handle's rights. |
+ MojoHandle new_handle = AddHandle(Handle( |
+ new_dispatcher.Clone(), SharedBufferDispatcher::kDefaultHandleRights)); |
if (new_handle == MOJO_HANDLE_INVALID) { |
LOG(ERROR) << "Handle table full"; |
new_dispatcher->Close(); |