| Index: base/memory/shared_memory_posix.cc
|
| diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc
|
| index ec4f01f35a3fdfa4132db9577fcc632ab306a406..904c95d6dddb801bf66aa67dc0bf724953e79987 100644
|
| --- a/base/memory/shared_memory_posix.cc
|
| +++ b/base/memory/shared_memory_posix.cc
|
| @@ -176,6 +176,24 @@ size_t SharedMemory::GetHandleLimit() {
|
| return base::GetMaxFds();
|
| }
|
|
|
| +// static
|
| +SharedMemoryHandle SharedMemory::ShallowCopyHandle(
|
| + const SharedMemoryHandle& handle) {
|
| + SharedMemoryHandle new_handle = handle;
|
| + new_handle.auto_close = false;
|
| + return new_handle;
|
| +}
|
| +
|
| +// static
|
| +SharedMemoryHandle SharedMemory::DeepCopyHandle(
|
| + const SharedMemoryHandle& handle,
|
| + bool clean_up_resources_on_destruction) {
|
| + int duped_handle = HANDLE_EINTR(dup(handle.fd));
|
| + if (duped_handle < 0)
|
| + return base::SharedMemory::NULLHandle();
|
| + return base::FileDescriptor(duped_handle, clean_up_resources_on_destruction);
|
| +}
|
| +
|
| bool SharedMemory::CreateAndMapAnonymous(size_t size) {
|
| return CreateAnonymous(size) && Map(size);
|
| }
|
|
|