diff options
Diffstat (limited to 'chrome/renderer/command_buffer_proxy.cc')
-rw-r--r-- | chrome/renderer/command_buffer_proxy.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/renderer/command_buffer_proxy.cc b/chrome/renderer/command_buffer_proxy.cc index b78fa84..3b68cc2 100644 --- a/chrome/renderer/command_buffer_proxy.cc +++ b/chrome/renderer/command_buffer_proxy.cc @@ -153,12 +153,20 @@ Buffer CommandBufferProxy::GetTransferBuffer(int32 id) { } // Cache the transfer buffer shared memory object client side. +#if defined(OS_WIN) + // TODO(piman): Does Windows needs this version of the constructor ? It + // duplicates the handle, but I'm not sure why it is necessary - it was + // already duped by the CommandBufferStub. base::SharedMemory* shared_memory = new base::SharedMemory(handle, false, base::GetCurrentProcessHandle()); +#else + base::SharedMemory* shared_memory = + new base::SharedMemory(handle, false); +#endif // Map the shared memory on demand. if (!shared_memory->memory()) { - if (!shared_memory->Map(shared_memory->max_size())) { + if (!shared_memory->Map(size)) { delete shared_memory; return Buffer(); } |