| Index: base/memory/shared_memory_mac.cc
|
| diff --git a/base/memory/shared_memory_mac.cc b/base/memory/shared_memory_mac.cc
|
| index 417d99f77bf43bb51902e9b6aecb924e23322f64..084b7256fb42aad0ffdd0184f9164a87b6cff216 100644
|
| --- a/base/memory/shared_memory_mac.cc
|
| +++ b/base/memory/shared_memory_mac.cc
|
| @@ -13,7 +13,6 @@
|
| #include "base/files/file_util.h"
|
| #include "base/files/scoped_file.h"
|
| #include "base/logging.h"
|
| -#include "base/mac/scoped_mach_vm.h"
|
| #include "base/posix/eintr_wrapper.h"
|
| #include "base/posix/safe_strerror.h"
|
| #include "base/process/process_metrics.h"
|
| @@ -28,49 +27,6 @@
|
| namespace base {
|
|
|
| namespace {
|
| -
|
| -// Returns whether the operation succeeded.
|
| -// |new_handle| is an output variable, populated on success. The caller takes
|
| -// ownership of the underlying memory object.
|
| -// |handle| is the handle to copy.
|
| -// If |handle| is already mapped, |mapped_addr| is its mapped location.
|
| -// Otherwise, |mapped_addr| should be |nullptr|.
|
| -bool MakeMachSharedMemoryHandleReadOnly(SharedMemoryHandle* new_handle,
|
| - SharedMemoryHandle handle,
|
| - void* mapped_addr) {
|
| - if (!handle.IsValid())
|
| - return false;
|
| -
|
| - size_t size;
|
| - CHECK(handle.GetSize(&size));
|
| -
|
| - // Map if necessary.
|
| - void* temp_addr = mapped_addr;
|
| - base::mac::ScopedMachVM scoper;
|
| - if (!temp_addr) {
|
| - // Intentionally lower current prot and max prot to |VM_PROT_READ|.
|
| - kern_return_t kr = mach_vm_map(
|
| - mach_task_self(), reinterpret_cast<mach_vm_address_t*>(&temp_addr),
|
| - size, 0, VM_FLAGS_ANYWHERE, handle.GetMemoryObject(), 0, FALSE,
|
| - VM_PROT_READ, VM_PROT_READ, VM_INHERIT_NONE);
|
| - if (kr != KERN_SUCCESS)
|
| - return false;
|
| - scoper.reset(reinterpret_cast<vm_address_t>(temp_addr),
|
| - mach_vm_round_page(size));
|
| - }
|
| -
|
| - // Make new memory object.
|
| - mach_port_t named_right;
|
| - kern_return_t kr = mach_make_memory_entry_64(
|
| - mach_task_self(), reinterpret_cast<memory_object_size_t*>(&size),
|
| - reinterpret_cast<memory_object_offset_t>(temp_addr), VM_PROT_READ,
|
| - &named_right, MACH_PORT_NULL);
|
| - if (kr != KERN_SUCCESS)
|
| - return false;
|
| -
|
| - *new_handle = SharedMemoryHandle(named_right, size, base::GetCurrentProcId());
|
| - return true;
|
| -}
|
|
|
| struct ScopedPathUnlinkerTraits {
|
| static FilePath* InvalidValue() { return nullptr; }
|
| @@ -366,31 +322,7 @@
|
| SharedMemoryHandle* new_handle,
|
| bool close_self,
|
| ShareMode share_mode) {
|
| - if (shm_.GetType() == SharedMemoryHandle::MACH) {
|
| - DCHECK(shm_.IsValid());
|
| -
|
| - bool success = false;
|
| - switch (share_mode) {
|
| - case SHARE_CURRENT_MODE:
|
| - *new_handle = shm_.Duplicate();
|
| - success = true;
|
| - break;
|
| - case SHARE_READONLY:
|
| - success = MakeMachSharedMemoryHandleReadOnly(new_handle, shm_, memory_);
|
| - break;
|
| - }
|
| -
|
| - if (success)
|
| - new_handle->SetOwnershipPassesToIPC(true);
|
| -
|
| - if (close_self) {
|
| - Unmap();
|
| - Close();
|
| - }
|
| -
|
| - return success;
|
| - }
|
| -
|
| + DCHECK_NE(shm_.GetType(), SharedMemoryHandle::MACH);
|
| int handle_to_dup = -1;
|
| switch (share_mode) {
|
| case SHARE_CURRENT_MODE:
|
|
|