| Index: mojo/edk/system/core.cc
|
| diff --git a/mojo/edk/system/core.cc b/mojo/edk/system/core.cc
|
| index 80e9815ac5f21808f7a401330ddbd90d65679a12..e37175552fb972aee56d06ddef4c2e6a82e1e38a 100644
|
| --- a/mojo/edk/system/core.cc
|
| +++ b/mojo/edk/system/core.cc
|
| @@ -470,13 +470,23 @@ MojoResult Core::CreateDataPipe(
|
| ScopedPlatformHandle server_handle, client_handle;
|
| #if defined(OS_WIN)
|
| internal::g_broker->CreatePlatformChannelPair(&server_handle, &client_handle);
|
| + scoped_refptr<PlatformSharedBuffer> server_buffer =
|
| + internal::g_platform_support->CreateSharedBuffer(
|
| + validated_options.capacity_num_bytes);
|
| #else
|
| PlatformChannelPair channel_pair;
|
| server_handle = channel_pair.PassServerHandle();
|
| client_handle = channel_pair.PassClientHandle();
|
| + scoped_refptr<PlatformSharedBuffer> server_buffer =
|
| + internal::g_broker->CreateSharedBuffer(
|
| + validated_options.capacity_num_bytes);
|
| #endif
|
| - producer_dispatcher->Init(std::move(server_handle), nullptr, 0u);
|
| - consumer_dispatcher->Init(std::move(client_handle), nullptr, 0u);
|
| + scoped_refptr<PlatformSharedBuffer> client_buffer =
|
| + internal::g_platform_support->CreateSharedBufferFromHandle(
|
| + validated_options.capacity_num_bytes,
|
| + server_buffer->DuplicatePlatformHandle());
|
| + producer_dispatcher->Init(std::move(server_handle), server_buffer);
|
| + consumer_dispatcher->Init(std::move(client_handle), client_buffer);
|
|
|
| *data_pipe_producer_handle = handle_pair.first;
|
| *data_pipe_consumer_handle = handle_pair.second;
|
|
|