| Index: mojo/edk/system/data_pipe.cc
|
| diff --git a/mojo/edk/system/data_pipe.cc b/mojo/edk/system/data_pipe.cc
|
| index 69aced2d73128635b58f33318cf49adaf3602c55..ffe34694889b572838f5965a0fed85c367e75f8a 100644
|
| --- a/mojo/edk/system/data_pipe.cc
|
| +++ b/mojo/edk/system/data_pipe.cc
|
| @@ -94,14 +94,14 @@ MojoResult DataPipe::ValidateCreateOptions(
|
| }
|
|
|
| // static
|
| -DataPipe* DataPipe::CreateLocal(
|
| +RefPtr<DataPipe> DataPipe::CreateLocal(
|
| const MojoCreateDataPipeOptions& validated_options) {
|
| - return new DataPipe(true, true, validated_options,
|
| - util::MakeUnique<LocalDataPipeImpl>());
|
| + return AdoptRef(new DataPipe(true, true, validated_options,
|
| + util::MakeUnique<LocalDataPipeImpl>()));
|
| }
|
|
|
| // static
|
| -DataPipe* DataPipe::CreateRemoteProducerFromExisting(
|
| +RefPtr<DataPipe> DataPipe::CreateRemoteProducerFromExisting(
|
| const MojoCreateDataPipeOptions& validated_options,
|
| MessageInTransitQueue* message_queue,
|
| RefPtr<ChannelEndpoint>&& channel_endpoint) {
|
| @@ -118,12 +118,12 @@ DataPipe* DataPipe::CreateRemoteProducerFromExisting(
|
| // ongoing call to |IncomingEndpoint::OnReadMessage()| return false. This will
|
| // make |ChannelEndpoint::OnReadMessage()| retry, until its |ReplaceClient()|
|
| // is called.
|
| - DataPipe* data_pipe = new DataPipe(
|
| + RefPtr<DataPipe> data_pipe = AdoptRef(new DataPipe(
|
| false, true, validated_options,
|
| util::MakeUnique<RemoteProducerDataPipeImpl>(
|
| - channel_endpoint.Clone(), std::move(buffer), 0, buffer_num_bytes));
|
| + channel_endpoint.Clone(), std::move(buffer), 0, buffer_num_bytes)));
|
| if (channel_endpoint) {
|
| - if (!channel_endpoint->ReplaceClient(data_pipe, 0))
|
| + if (!channel_endpoint->ReplaceClient(data_pipe.Clone(), 0))
|
| data_pipe->OnDetachFromChannel(0);
|
| } else {
|
| data_pipe->SetProducerClosed();
|
| @@ -132,7 +132,7 @@ DataPipe* DataPipe::CreateRemoteProducerFromExisting(
|
| }
|
|
|
| // static
|
| -DataPipe* DataPipe::CreateRemoteConsumerFromExisting(
|
| +RefPtr<DataPipe> DataPipe::CreateRemoteConsumerFromExisting(
|
| const MojoCreateDataPipeOptions& validated_options,
|
| size_t consumer_num_bytes,
|
| MessageInTransitQueue* message_queue,
|
| @@ -148,12 +148,12 @@ DataPipe* DataPipe::CreateRemoteConsumerFromExisting(
|
| // ongoing call to |IncomingEndpoint::OnReadMessage()| return false. This will
|
| // make |ChannelEndpoint::OnReadMessage()| retry, until its |ReplaceClient()|
|
| // is called.
|
| - DataPipe* data_pipe = new DataPipe(
|
| + RefPtr<DataPipe> data_pipe = AdoptRef(new DataPipe(
|
| true, false, validated_options,
|
| util::MakeUnique<RemoteConsumerDataPipeImpl>(
|
| - channel_endpoint.Clone(), consumer_num_bytes, nullptr, 0));
|
| + channel_endpoint.Clone(), consumer_num_bytes, nullptr, 0)));
|
| if (channel_endpoint) {
|
| - if (!channel_endpoint->ReplaceClient(data_pipe, 0))
|
| + if (!channel_endpoint->ReplaceClient(data_pipe.Clone(), 0))
|
| data_pipe->OnDetachFromChannel(0);
|
| } else {
|
| data_pipe->SetConsumerClosed();
|
| @@ -165,7 +165,7 @@ DataPipe* DataPipe::CreateRemoteConsumerFromExisting(
|
| bool DataPipe::ProducerDeserialize(Channel* channel,
|
| const void* source,
|
| size_t size,
|
| - scoped_refptr<DataPipe>* data_pipe) {
|
| + RefPtr<DataPipe>* data_pipe) {
|
| DCHECK(!*data_pipe); // Not technically wrong, but unlikely.
|
|
|
| bool consumer_open = false;
|
| @@ -196,9 +196,9 @@ bool DataPipe::ProducerDeserialize(Channel* channel,
|
| return false;
|
| }
|
|
|
| - *data_pipe = new DataPipe(
|
| + *data_pipe = AdoptRef(new DataPipe(
|
| true, false, revalidated_options,
|
| - util::MakeUnique<RemoteConsumerDataPipeImpl>(nullptr, 0, nullptr, 0));
|
| + util::MakeUnique<RemoteConsumerDataPipeImpl>(nullptr, 0, nullptr, 0)));
|
| (*data_pipe)->SetConsumerClosed();
|
|
|
| return true;
|
| @@ -213,7 +213,7 @@ bool DataPipe::ProducerDeserialize(Channel* channel,
|
|
|
| const void* endpoint_source = static_cast<const char*>(source) +
|
| sizeof(SerializedDataPipeProducerDispatcher);
|
| - scoped_refptr<IncomingEndpoint> incoming_endpoint =
|
| + RefPtr<IncomingEndpoint> incoming_endpoint =
|
| channel->DeserializeEndpoint(endpoint_source);
|
| if (!incoming_endpoint)
|
| return false;
|
| @@ -230,7 +230,7 @@ bool DataPipe::ProducerDeserialize(Channel* channel,
|
| bool DataPipe::ConsumerDeserialize(Channel* channel,
|
| const void* source,
|
| size_t size,
|
| - scoped_refptr<DataPipe>* data_pipe) {
|
| + RefPtr<DataPipe>* data_pipe) {
|
| DCHECK(!*data_pipe); // Not technically wrong, but unlikely.
|
|
|
| if (size !=
|
| @@ -251,7 +251,7 @@ bool DataPipe::ConsumerDeserialize(Channel* channel,
|
|
|
| const void* endpoint_source = static_cast<const char*>(source) +
|
| sizeof(SerializedDataPipeConsumerDispatcher);
|
| - scoped_refptr<IncomingEndpoint> incoming_endpoint =
|
| + RefPtr<IncomingEndpoint> incoming_endpoint =
|
| channel->DeserializeEndpoint(endpoint_source);
|
| if (!incoming_endpoint)
|
| return false;
|
|
|