Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1147)

Unified Diff: mojo/edk/system/dispatcher.cc

Issue 1412283002: Convert mojo::system::Dispatcher to use our new refcounting stuff (instead of base's). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: no change Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/edk/system/dispatcher.h ('k') | mojo/edk/system/dispatcher_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/dispatcher.cc
diff --git a/mojo/edk/system/dispatcher.cc b/mojo/edk/system/dispatcher.cc
index e0ef182c6acbaf7cc543dc0539d80c2572c13d23..a39647df39db1611139e67c48c5f427b031cf90c 100644
--- a/mojo/edk/system/dispatcher.cc
+++ b/mojo/edk/system/dispatcher.cc
@@ -67,7 +67,7 @@ bool Dispatcher::TransportDataAccess::EndSerializeAndClose(
}
// static
-scoped_refptr<Dispatcher> Dispatcher::TransportDataAccess::Deserialize(
+RefPtr<Dispatcher> Dispatcher::TransportDataAccess::Deserialize(
Channel* channel,
int32_t type,
const void* source,
@@ -78,20 +78,17 @@ scoped_refptr<Dispatcher> Dispatcher::TransportDataAccess::Deserialize(
DVLOG(2) << "Deserializing invalid handle";
return nullptr;
case Type::MESSAGE_PIPE:
- return scoped_refptr<Dispatcher>(
- MessagePipeDispatcher::Deserialize(channel, source, size));
+ return MessagePipeDispatcher::Deserialize(channel, source, size);
case Type::DATA_PIPE_PRODUCER:
- return scoped_refptr<Dispatcher>(
- DataPipeProducerDispatcher::Deserialize(channel, source, size));
+ return DataPipeProducerDispatcher::Deserialize(channel, source, size);
case Type::DATA_PIPE_CONSUMER:
- return scoped_refptr<Dispatcher>(
- DataPipeConsumerDispatcher::Deserialize(channel, source, size));
+ return DataPipeConsumerDispatcher::Deserialize(channel, source, size);
case Type::SHARED_BUFFER:
- return scoped_refptr<Dispatcher>(SharedBufferDispatcher::Deserialize(
- channel, source, size, platform_handles));
+ return SharedBufferDispatcher::Deserialize(channel, source, size,
+ platform_handles);
case Type::PLATFORM_HANDLE:
- return scoped_refptr<Dispatcher>(PlatformHandleDispatcher::Deserialize(
- channel, source, size, platform_handles));
+ return PlatformHandleDispatcher::Deserialize(channel, source, size,
+ platform_handles);
}
LOG(WARNING) << "Unknown dispatcher type " << type;
return nullptr;
@@ -196,7 +193,7 @@ MojoResult Dispatcher::EndReadData(uint32_t num_bytes_read) {
MojoResult Dispatcher::DuplicateBufferHandle(
UserPointer<const MojoDuplicateBufferHandleOptions> options,
- scoped_refptr<Dispatcher>* new_dispatcher) {
+ RefPtr<Dispatcher>* new_dispatcher) {
MutexLocker locker(&mutex_);
if (is_closed_)
return MOJO_RESULT_INVALID_ARGUMENT;
@@ -349,7 +346,7 @@ MojoResult Dispatcher::EndReadDataImplNoLock(uint32_t /*num_bytes_read*/) {
MojoResult Dispatcher::DuplicateBufferHandleImplNoLock(
UserPointer<const MojoDuplicateBufferHandleOptions> /*options*/,
- scoped_refptr<Dispatcher>* /*new_dispatcher*/) {
+ RefPtr<Dispatcher>* /*new_dispatcher*/) {
mutex_.AssertHeld();
DCHECK(!is_closed_);
// By default, not supported. Only needed for buffer dispatchers.
@@ -402,7 +399,7 @@ void Dispatcher::RemoveAwakableImplNoLock(Awakable* /*awakable*/,
void Dispatcher::StartSerializeImplNoLock(Channel* /*channel*/,
size_t* max_size,
size_t* max_platform_handles) {
- DCHECK(HasOneRef()); // Only one ref => no need to take the lock.
+ AssertHasOneRef(); // Only one ref => no need to take the lock.
DCHECK(!is_closed_);
*max_size = 0;
*max_platform_handles = 0;
@@ -413,7 +410,7 @@ bool Dispatcher::EndSerializeAndCloseImplNoLock(
void* /*destination*/,
size_t* /*actual_size*/,
embedder::PlatformHandleVector* /*platform_handles*/) {
- DCHECK(HasOneRef()); // Only one ref => no need to take the lock.
+ AssertHasOneRef(); // Only one ref => no need to take the lock.
DCHECK(is_closed_);
// By default, serializing isn't supported, so just close.
CloseImplNoLock();
@@ -437,8 +434,7 @@ void Dispatcher::CloseNoLock() {
CloseImplNoLock();
}
-scoped_refptr<Dispatcher>
-Dispatcher::CreateEquivalentDispatcherAndCloseNoLock() {
+RefPtr<Dispatcher> Dispatcher::CreateEquivalentDispatcherAndCloseNoLock() {
mutex_.AssertHeld();
DCHECK(!is_closed_);
@@ -453,7 +449,7 @@ void Dispatcher::StartSerialize(Channel* channel,
DCHECK(channel);
DCHECK(max_size);
DCHECK(max_platform_handles);
- DCHECK(HasOneRef()); // Only one ref => no need to take the lock.
+ AssertHasOneRef(); // Only one ref => no need to take the lock.
DCHECK(!is_closed_);
StartSerializeImplNoLock(channel, max_size, max_platform_handles);
}
@@ -465,7 +461,7 @@ bool Dispatcher::EndSerializeAndClose(
embedder::PlatformHandleVector* platform_handles) {
DCHECK(channel);
DCHECK(actual_size);
- DCHECK(HasOneRef()); // Only one ref => no need to take the lock.
+ AssertHasOneRef(); // Only one ref => no need to take the lock.
DCHECK(!is_closed_);
// Like other |...Close()| methods, we mark ourselves as closed before calling
« no previous file with comments | « mojo/edk/system/dispatcher.h ('k') | mojo/edk/system/dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698