Index: mojo/edk/embedder/embedder.cc |
diff --git a/mojo/edk/embedder/embedder.cc b/mojo/edk/embedder/embedder.cc |
index 9ed0f408ad92fc4bd3d2a99cca3479c8140a64a3..fe464c73db7e6d90d13cf812955e7eaa360c4f04 100644 |
--- a/mojo/edk/embedder/embedder.cc |
+++ b/mojo/edk/embedder/embedder.cc |
@@ -23,6 +23,7 @@ |
#include "mojo/edk/system/message_pipe_dispatcher.h" |
#include "mojo/edk/system/platform_handle_dispatcher.h" |
#include "mojo/edk/system/raw_channel.h" |
+#include "mojo/edk/system/ref_ptr.h" |
namespace mojo { |
namespace embedder { |
@@ -102,11 +103,11 @@ MojoResult CreatePlatformHandleWrapper( |
MojoHandle* platform_handle_wrapper_handle) { |
DCHECK(platform_handle_wrapper_handle); |
- scoped_refptr<system::Dispatcher> dispatcher = |
+ auto dispatcher = |
system::PlatformHandleDispatcher::Create(platform_handle.Pass()); |
DCHECK(internal::g_core); |
- MojoHandle h = internal::g_core->AddDispatcher(dispatcher); |
+ MojoHandle h = internal::g_core->AddDispatcher(dispatcher.get()); |
if (h == MOJO_HANDLE_INVALID) { |
LOG(ERROR) << "Handle table full"; |
dispatcher->Close(); |
@@ -122,8 +123,8 @@ MojoResult PassWrappedPlatformHandle(MojoHandle platform_handle_wrapper_handle, |
DCHECK(platform_handle); |
DCHECK(internal::g_core); |
- scoped_refptr<system::Dispatcher> dispatcher( |
- internal::g_core->GetDispatcher(platform_handle_wrapper_handle)); |
+ auto dispatcher = |
+ internal::g_core->GetDispatcher(platform_handle_wrapper_handle); |
if (!dispatcher) |
return MOJO_RESULT_INVALID_ARGUMENT; |
@@ -184,7 +185,7 @@ ScopedMessagePipeHandle ConnectToSlave( |
internal::g_ipc_support->GenerateConnectionIdentifier(); |
*platform_connection_id = connection_id.ToString(); |
system::ChannelId channel_id = system::kInvalidChannelId; |
- scoped_refptr<system::MessagePipeDispatcher> dispatcher = |
+ system::RefPtr<system::MessagePipeDispatcher> dispatcher = |
internal::g_ipc_support->ConnectToSlave( |
connection_id, slave_info, platform_handle.Pass(), |
did_connect_to_slave_callback, did_connect_to_slave_runner.Pass(), |
@@ -192,11 +193,9 @@ ScopedMessagePipeHandle ConnectToSlave( |
*channel_info = new ChannelInfo(channel_id); |
ScopedMessagePipeHandle rv( |
- MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher))); |
+ MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher.get()))); |
CHECK(rv.is_valid()); |
- // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it |
- // once that's fixed. |
- return rv.Pass(); |
+ return rv; |
} |
ScopedMessagePipeHandle ConnectToMaster( |
@@ -213,18 +212,16 @@ ScopedMessagePipeHandle ConnectToMaster( |
CHECK(ok); |
system::ChannelId channel_id = system::kInvalidChannelId; |
- scoped_refptr<system::MessagePipeDispatcher> dispatcher = |
+ system::RefPtr<system::MessagePipeDispatcher> dispatcher = |
internal::g_ipc_support->ConnectToMaster( |
connection_id, did_connect_to_master_callback, |
did_connect_to_master_runner.Pass(), &channel_id); |
*channel_info = new ChannelInfo(channel_id); |
ScopedMessagePipeHandle rv( |
- MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher))); |
+ MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher.get()))); |
CHECK(rv.is_valid()); |
- // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it |
- // once that's fixed. |
- return rv.Pass(); |
+ return rv; |
} |
// TODO(vtl): Write tests for this. |
@@ -239,16 +236,14 @@ ScopedMessagePipeHandle CreateChannelOnIOThread( |
internal::g_ipc_support->channel_manager(); |
*channel_info = new ChannelInfo(MakeChannelId()); |
- scoped_refptr<system::MessagePipeDispatcher> dispatcher = |
+ system::RefPtr<system::MessagePipeDispatcher> dispatcher = |
channel_manager->CreateChannelOnIOThread((*channel_info)->channel_id, |
platform_handle.Pass()); |
ScopedMessagePipeHandle rv( |
- MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher))); |
+ MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher.get()))); |
CHECK(rv.is_valid()); |
- // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it |
- // once that's fixed. |
- return rv.Pass(); |
+ return rv; |
} |
ScopedMessagePipeHandle CreateChannel( |
@@ -264,7 +259,7 @@ ScopedMessagePipeHandle CreateChannel( |
system::ChannelId channel_id = MakeChannelId(); |
std::unique_ptr<ChannelInfo> channel_info(new ChannelInfo(channel_id)); |
- scoped_refptr<system::MessagePipeDispatcher> dispatcher = |
+ system::RefPtr<system::MessagePipeDispatcher> dispatcher = |
channel_manager->CreateChannel( |
channel_id, platform_handle.Pass(), |
base::Bind(did_create_channel_callback, |
@@ -272,11 +267,9 @@ ScopedMessagePipeHandle CreateChannel( |
did_create_channel_runner); |
ScopedMessagePipeHandle rv( |
- MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher))); |
+ MessagePipeHandle(internal::g_core->AddDispatcher(dispatcher.get()))); |
CHECK(rv.is_valid()); |
- // TODO(vtl): The |.Pass()| below is only needed due to an MSVS bug; remove it |
- // once that's fixed. |
- return rv.Pass(); |
+ return rv; |
} |
// TODO(vtl): Write tests for this. |