Index: mojo/edk/system/message_pipe.cc |
diff --git a/mojo/edk/system/message_pipe.cc b/mojo/edk/system/message_pipe.cc |
index df48078bcbcb2d3795bb44f07e6a5b518663aee7..49fd5a01754074ed614ab588a8c392d1ad436849 100644 |
--- a/mojo/edk/system/message_pipe.cc |
+++ b/mojo/edk/system/message_pipe.cc |
@@ -23,31 +23,32 @@ namespace mojo { |
namespace system { |
// static |
-MessagePipe* MessagePipe::CreateLocalLocal() MOJO_NO_THREAD_SAFETY_ANALYSIS { |
- MessagePipe* message_pipe = new MessagePipe(); |
+RefPtr<MessagePipe> MessagePipe::CreateLocalLocal() |
+ MOJO_NO_THREAD_SAFETY_ANALYSIS { |
+ RefPtr<MessagePipe> message_pipe = AdoptRef(new MessagePipe()); |
message_pipe->endpoints_[0].reset(new LocalMessagePipeEndpoint()); |
message_pipe->endpoints_[1].reset(new LocalMessagePipeEndpoint()); |
return message_pipe; |
} |
// static |
-MessagePipe* MessagePipe::CreateLocalProxy( |
+RefPtr<MessagePipe> MessagePipe::CreateLocalProxy( |
RefPtr<ChannelEndpoint>* channel_endpoint) MOJO_NO_THREAD_SAFETY_ANALYSIS { |
DCHECK(!*channel_endpoint); // Not technically wrong, but unlikely. |
- MessagePipe* message_pipe = new MessagePipe(); |
+ RefPtr<MessagePipe> message_pipe = AdoptRef(new MessagePipe()); |
message_pipe->endpoints_[0].reset(new LocalMessagePipeEndpoint()); |
- *channel_endpoint = MakeRefCounted<ChannelEndpoint>(message_pipe, 1); |
+ *channel_endpoint = MakeRefCounted<ChannelEndpoint>(message_pipe.Clone(), 1); |
message_pipe->endpoints_[1].reset( |
new ProxyMessagePipeEndpoint(channel_endpoint->Clone())); |
return message_pipe; |
} |
// static |
-MessagePipe* MessagePipe::CreateLocalProxyFromExisting( |
+RefPtr<MessagePipe> MessagePipe::CreateLocalProxyFromExisting( |
MessageInTransitQueue* message_queue, |
RefPtr<ChannelEndpoint>&& channel_endpoint) MOJO_NO_THREAD_SAFETY_ANALYSIS { |
DCHECK(message_queue); |
- MessagePipe* message_pipe = new MessagePipe(); |
+ RefPtr<MessagePipe> message_pipe = AdoptRef(new MessagePipe()); |
message_pipe->endpoints_[0].reset( |
new LocalMessagePipeEndpoint(message_queue)); |
if (channel_endpoint) { |
@@ -67,10 +68,10 @@ MessagePipe* MessagePipe::CreateLocalProxyFromExisting( |
} |
// static |
-MessagePipe* MessagePipe::CreateProxyLocal( |
+RefPtr<MessagePipe> MessagePipe::CreateProxyLocal( |
RefPtr<ChannelEndpoint>* channel_endpoint) MOJO_NO_THREAD_SAFETY_ANALYSIS { |
DCHECK(!*channel_endpoint); // Not technically wrong, but unlikely. |
- MessagePipe* message_pipe = new MessagePipe(); |
+ RefPtr<MessagePipe> message_pipe = AdoptRef(new MessagePipe()); |
*channel_endpoint = MakeRefCounted<ChannelEndpoint>(message_pipe, 0); |
message_pipe->endpoints_[0].reset( |
new ProxyMessagePipeEndpoint(channel_endpoint->Clone())); |
@@ -88,7 +89,7 @@ unsigned MessagePipe::GetPeerPort(unsigned port) { |
bool MessagePipe::Deserialize(Channel* channel, |
const void* source, |
size_t size, |
- scoped_refptr<MessagePipe>* message_pipe, |
+ RefPtr<MessagePipe>* message_pipe, |
unsigned* port) { |
DCHECK(!*message_pipe); // Not technically wrong, but unlikely. |
@@ -97,7 +98,7 @@ bool MessagePipe::Deserialize(Channel* channel, |
return false; |
} |
- scoped_refptr<IncomingEndpoint> incoming_endpoint = |
+ RefPtr<IncomingEndpoint> incoming_endpoint = |
channel->DeserializeEndpoint(source); |
if (!incoming_endpoint) |
return false; |
@@ -251,8 +252,9 @@ bool MessagePipe::EndSerialize( |
// with a |ProxyMessagePipeEndpoint| hooked up to the |ChannelEndpoint| that |
// the |Channel| returns to us. |
RefPtr<ChannelEndpoint> channel_endpoint = |
- channel->SerializeEndpointWithLocalPeer(destination, message_queue, |
- this, port); |
+ channel->SerializeEndpointWithLocalPeer( |
+ destination, message_queue, RefPtr<ChannelEndpointClient>(this), |
+ port); |
replacement_endpoint = |
new ProxyMessagePipeEndpoint(std::move(channel_endpoint)); |
} else { |