OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/edk/embedder/platform_shared_buffer.h" | 5 #include "mojo/edk/embedder/platform_shared_buffer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 if (ro_shared_memory_) { | 197 if (ro_shared_memory_) { |
198 base::AutoLock locker(lock_); | 198 base::AutoLock locker(lock_); |
199 base::SharedMemoryHandle handle; | 199 base::SharedMemoryHandle handle; |
200 handle = base::SharedMemory::DuplicateHandle(ro_shared_memory_->handle()); | 200 handle = base::SharedMemory::DuplicateHandle(ro_shared_memory_->handle()); |
201 if (!handle.IsValid()) | 201 if (!handle.IsValid()) |
202 return nullptr; | 202 return nullptr; |
203 return CreateFromSharedMemoryHandle(num_bytes_, true, handle); | 203 return CreateFromSharedMemoryHandle(num_bytes_, true, handle); |
204 } | 204 } |
205 | 205 |
206 base::SharedMemoryHandle handle; | 206 base::SharedMemoryHandle handle; |
207 bool success; | |
208 { | 207 { |
209 base::AutoLock locker(lock_); | 208 base::AutoLock locker(lock_); |
210 success = shared_memory_->ShareReadOnlyToProcess( | 209 handle = shared_memory_->GetReadOnlyHandle(); |
211 base::GetCurrentProcessHandle(), &handle); | |
212 } | 210 } |
213 if (!success || !handle.IsValid()) | 211 if (!handle.IsValid()) |
214 return nullptr; | 212 return nullptr; |
215 | 213 |
216 return CreateFromSharedMemoryHandle(num_bytes_, true, handle); | 214 return CreateFromSharedMemoryHandle(num_bytes_, true, handle); |
217 } | 215 } |
218 | 216 |
219 PlatformSharedBuffer::PlatformSharedBuffer(size_t num_bytes, bool read_only) | 217 PlatformSharedBuffer::PlatformSharedBuffer(size_t num_bytes, bool read_only) |
220 : num_bytes_(num_bytes), read_only_(read_only) {} | 218 : num_bytes_(num_bytes), read_only_(read_only) {} |
221 | 219 |
222 PlatformSharedBuffer::~PlatformSharedBuffer() {} | 220 PlatformSharedBuffer::~PlatformSharedBuffer() {} |
223 | 221 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 base_ = static_cast<char*>(shared_memory_.memory()) + offset_rounding; | 330 base_ = static_cast<char*>(shared_memory_.memory()) + offset_rounding; |
333 return true; | 331 return true; |
334 } | 332 } |
335 | 333 |
336 void PlatformSharedBufferMapping::Unmap() { | 334 void PlatformSharedBufferMapping::Unmap() { |
337 shared_memory_.Unmap(); | 335 shared_memory_.Unmap(); |
338 } | 336 } |
339 | 337 |
340 } // namespace edk | 338 } // namespace edk |
341 } // namespace mojo | 339 } // namespace mojo |
OLD | NEW |