Index: mojo/edk/system/channel.cc |
diff --git a/mojo/edk/system/channel.cc b/mojo/edk/system/channel.cc |
index d27661cf4523847e32c4241b568ecb395b4bbb38..ae8b1c45e844f957fc3c31d625888fadf551e31f 100644 |
--- a/mojo/edk/system/channel.cc |
+++ b/mojo/edk/system/channel.cc |
@@ -176,14 +176,14 @@ void Channel::SerializeEndpointWithClosedPeer( |
RefPtr<ChannelEndpoint> Channel::SerializeEndpointWithLocalPeer( |
void* destination, |
MessageInTransitQueue* message_queue, |
- ChannelEndpointClient* endpoint_client, |
+ RefPtr<ChannelEndpointClient>&& endpoint_client, |
unsigned endpoint_client_port) { |
DCHECK(destination); |
// Allow |endpoint_client| to be null, for use by |
// |SerializeEndpointWithClosedPeer()|. |
auto endpoint = MakeRefCounted<ChannelEndpoint>( |
- endpoint_client, endpoint_client_port, message_queue); |
+ std::move(endpoint_client), endpoint_client_port, message_queue); |
SerializedEndpoint* s = static_cast<SerializedEndpoint*>(destination); |
s->receiver_endpoint_id = AttachAndRunEndpoint(endpoint.Clone()); |
@@ -206,11 +206,11 @@ void Channel::SerializeEndpointWithRemotePeer( |
// TODO(vtl): If we were to own/track the relayer directly (rather than owning |
// it via its |ChannelEndpoint|s), then we might be able to make |
// |ChannelEndpoint|'s |client_| pointer a raw pointer. |
- scoped_refptr<EndpointRelayer> relayer(new EndpointRelayer()); |
+ auto relayer = MakeRefCounted<EndpointRelayer>(); |
auto endpoint = |
- MakeRefCounted<ChannelEndpoint>(relayer.get(), 0, message_queue); |
+ MakeRefCounted<ChannelEndpoint>(relayer.Clone(), 0, message_queue); |
relayer->Init(endpoint.Clone(), peer_endpoint.Clone()); |
- peer_endpoint->ReplaceClient(relayer.get(), 1); |
+ peer_endpoint->ReplaceClient(std::move(relayer), 1); |
SerializedEndpoint* s = static_cast<SerializedEndpoint*>(destination); |
s->receiver_endpoint_id = AttachAndRunEndpoint(std::move(endpoint)); |
@@ -218,8 +218,7 @@ void Channel::SerializeEndpointWithRemotePeer( |
<< s->receiver_endpoint_id << ")"; |
} |
-scoped_refptr<IncomingEndpoint> Channel::DeserializeEndpoint( |
- const void* source) { |
+RefPtr<IncomingEndpoint> Channel::DeserializeEndpoint(const void* source) { |
const SerializedEndpoint* s = static_cast<const SerializedEndpoint*>(source); |
ChannelEndpointId local_id = s->receiver_endpoint_id; |
// No need to check the validity of |local_id| -- if it's not valid, it simply |
@@ -237,8 +236,7 @@ scoped_refptr<IncomingEndpoint> Channel::DeserializeEndpoint( |
DVLOG(2) << "Deserializing endpoint (new local ID = " << local_id << ")"; |
- scoped_refptr<IncomingEndpoint> rv; |
- rv.swap(it->second); |
+ RefPtr<IncomingEndpoint> rv = std::move(it->second); |
incoming_endpoints_.erase(it); |
return rv; |
} |
@@ -469,7 +467,7 @@ bool Channel::OnAttachAndRunEndpoint(ChannelEndpointId local_id, |
// Create/initialize an |IncomingEndpoint| and thus an endpoint (outside the |
// lock). |
- scoped_refptr<IncomingEndpoint> incoming_endpoint(new IncomingEndpoint()); |
+ auto incoming_endpoint = MakeRefCounted<IncomingEndpoint>(); |
RefPtr<ChannelEndpoint> endpoint = incoming_endpoint->Init(); |
bool success = true; |