Index: remoting/host/desktop_session_agent.cc |
diff --git a/remoting/host/desktop_session_agent.cc b/remoting/host/desktop_session_agent.cc |
index 2e486c5b486b1930412a129e00da68c1b2be7dc0..dd5a3fbf7e70a7639440aa2fdf1bf3a6394cd410 100644 |
--- a/remoting/host/desktop_session_agent.cc |
+++ b/remoting/host/desktop_session_agent.cc |
@@ -89,23 +89,16 @@ class DesktopSessionAgent::SharedBuffer : public webrtc::SharedMemory { |
~SharedBuffer() override { agent_->OnSharedBufferDeleted(id()); } |
+ base::SharedMemory* shared_memory() { return shared_memory_.get(); } |
+ |
private: |
SharedBuffer(DesktopSessionAgent* agent, |
scoped_ptr<base::SharedMemory> memory, |
size_t size, |
int id) |
- : SharedMemory(memory->memory(), |
- size, |
-#if defined(OS_WIN) |
- memory->handle().GetHandle(), |
-#else |
- base::SharedMemory::GetFdFromSharedMemoryHandle( |
- memory->handle()), |
-#endif |
- id), |
+ : SharedMemory(memory->memory(), size, 0, id), |
agent_(agent), |
- shared_memory_(memory.Pass()) { |
- } |
+ shared_memory_(memory.Pass()) {} |
DesktopSessionAgent* agent_; |
scoped_ptr<base::SharedMemory> shared_memory_; |
@@ -208,9 +201,11 @@ webrtc::SharedMemory* DesktopSessionAgent::CreateSharedMemory(size_t size) { |
IPC::PlatformFileForTransit handle; |
#if defined(OS_WIN) |
- handle = buffer->handle(); |
+ handle = buffer->shared_memory()->handle().GetHandle(), |
#else |
- handle = base::FileDescriptor(buffer->handle(), false); |
+ handle = |
+ base::FileDescriptor(base::SharedMemory::GetFdFromSharedMemoryHandle( |
+ buffer->shared_memory()->handle()), false); |
#endif |
SendToNetwork(new ChromotingDesktopNetworkMsg_CreateSharedBuffer( |
buffer->id(), handle, buffer->size())); |