| Index: mojo/edk/system/dispatcher.cc
 | 
| diff --git a/mojo/edk/system/dispatcher.cc b/mojo/edk/system/dispatcher.cc
 | 
| index f143d5706cf734a8b414804ae6c0f8e059b0b0cf..8f6580102f9c507aae7f2eb6a7ebc89d0bdd7e39 100644
 | 
| --- a/mojo/edk/system/dispatcher.cc
 | 
| +++ b/mojo/edk/system/dispatcher.cc
 | 
| @@ -8,6 +8,7 @@
 | 
|  #include "mojo/edk/system/configuration.h"
 | 
|  #include "mojo/edk/system/data_pipe_consumer_dispatcher.h"
 | 
|  #include "mojo/edk/system/data_pipe_producer_dispatcher.h"
 | 
| +#include "mojo/edk/system/handle.h"
 | 
|  #include "mojo/edk/system/handle_transport.h"
 | 
|  #include "mojo/edk/system/message_pipe_dispatcher.h"
 | 
|  #include "mojo/edk/system/platform_handle_dispatcher.h"
 | 
| @@ -24,8 +25,8 @@ namespace system {
 | 
|  namespace test {
 | 
|  
 | 
|  // TODO(vtl): Maybe this should be defined in a test-only file instead.
 | 
| -DispatcherTransport DispatcherTryStartTransport(Dispatcher* dispatcher) {
 | 
| -  return Dispatcher::HandleTableAccess::TryStartTransport(dispatcher);
 | 
| +DispatcherTransport HandleTryStartTransport(const Handle& handle) {
 | 
| +  return Dispatcher::HandleTableAccess::TryStartTransport(handle);
 | 
|  }
 | 
|  
 | 
|  }  // namespace test
 | 
| @@ -34,18 +35,18 @@ DispatcherTransport DispatcherTryStartTransport(Dispatcher* dispatcher) {
 | 
|  // fact that we give up if |TryLock()| fails.
 | 
|  // static
 | 
|  DispatcherTransport Dispatcher::HandleTableAccess::TryStartTransport(
 | 
| -    Dispatcher* dispatcher) MOJO_NO_THREAD_SAFETY_ANALYSIS {
 | 
| -  DCHECK(dispatcher);
 | 
| +    const Handle& handle) MOJO_NO_THREAD_SAFETY_ANALYSIS {
 | 
| +  DCHECK(handle.dispatcher);
 | 
|  
 | 
| -  if (!dispatcher->mutex_.TryLock())
 | 
| +  if (!handle.dispatcher->mutex_.TryLock())
 | 
|      return DispatcherTransport();
 | 
|  
 | 
|    // We shouldn't race with things that close dispatchers, since closing can
 | 
|    // only take place either under |handle_table_mutex_| or when the handle is
 | 
|    // marked as busy.
 | 
| -  DCHECK(!dispatcher->is_closed_);
 | 
| +  DCHECK(!handle.dispatcher->is_closed_);
 | 
|  
 | 
| -  return DispatcherTransport(dispatcher);
 | 
| +  return DispatcherTransport(handle);
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| 
 |