Chromium Code Reviews| Index: components/nacl/loader/nacl_ipc_adapter.cc |
| diff --git a/components/nacl/loader/nacl_ipc_adapter.cc b/components/nacl/loader/nacl_ipc_adapter.cc |
| index 2f3eefcae5d8c721f5bb3f351f7da5e43313c544..b60f638ce1a481c30672f1ffa57e9f4737c8d155 100644 |
| --- a/components/nacl/loader/nacl_ipc_adapter.cc |
| +++ b/components/nacl/loader/nacl_ipc_adapter.cc |
| @@ -227,6 +227,26 @@ class NaClDescWrapper { |
| DISALLOW_COPY_AND_ASSIGN(NaClDescWrapper); |
| }; |
| +scoped_ptr<NaClDescWrapper> MakeShmNaClDesc( |
| + const base::SharedMemoryHandle& handle, |
| + size_t size) { |
| +#if defined(OS_MACOSX) |
| + if (handle.GetType() == base::SharedMemoryHandle::MACH) { |
| + return scoped_ptr<NaClDescWrapper>(new NaClDescWrapper( |
| + NaClDescImcShmMachMake(handle.GetMemoryObject(), size))); |
| + } |
| + CHECK_EQ(base::SharedMemoryHandle::POSIX, handle.GetType()); |
| +#endif |
| + |
| + return scoped_ptr<NaClDescWrapper>(new NaClDescWrapper(NaClDescImcShmMake( |
| +#if defined(OS_WIN) |
| + handle.GetHandle(), |
| +#else |
| + base::SharedMemory::GetFdFromSharedMemoryHandle(handle), |
| +#endif |
| + size))); |
| +} |
| + |
| } // namespace |
| class NaClIPCAdapter::RewrittenMessage |
| @@ -541,15 +561,8 @@ bool NaClIPCAdapter::RewriteMessage(const IPC::Message& msg, uint32_t type) { |
| scoped_ptr<NaClDescWrapper> nacl_desc; |
| switch (iter->type()) { |
| case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { |
| - const base::SharedMemoryHandle& shm_handle = iter->shmem(); |
| - uint32_t size = iter->size(); |
| - nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMake( |
| -#if defined(OS_WIN) |
| - shm_handle.GetHandle(), |
| -#else |
| - base::SharedMemory::GetFdFromSharedMemoryHandle(shm_handle), |
| -#endif |
| - static_cast<size_t>(size)))); |
| + nacl_desc = |
|
Mark Seaborn
2015/11/20 21:57:19
Nit: the other cases do nacl_desc.reset() (though
erikchen
2015/11/20 22:00:46
nacl_desc.reset() is being used on a raw pointer.
Mark Seaborn
2015/11/20 22:42:36
OK, please leave it as it is, then. I hadn't real
|
| + MakeShmNaClDesc(iter->shmem(), static_cast<size_t>(iter->size())); |
| break; |
| } |
| case ppapi::proxy::SerializedHandle::SOCKET: { |