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: { |