| Index: base/memory/shared_memory_posix.cc
 | 
| diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc
 | 
| index 0358e63e33843be8973fd0f3d01097e038bbb818..fd26ad19ffbe1e3268d9b4165dd3591b4b0f6042 100644
 | 
| --- a/base/memory/shared_memory_posix.cc
 | 
| +++ b/base/memory/shared_memory_posix.cc
 | 
| @@ -80,6 +80,7 @@ SharedMemory::SharedMemory(SharedMemoryHandle handle, bool read_only,
 | 
|  }
 | 
|  
 | 
|  SharedMemory::~SharedMemory() {
 | 
| +  Unmap();
 | 
|    Close();
 | 
|  }
 | 
|  
 | 
| @@ -331,8 +332,6 @@ SharedMemoryHandle SharedMemory::handle() const {
 | 
|  }
 | 
|  
 | 
|  void SharedMemory::Close() {
 | 
| -  Unmap();
 | 
| -
 | 
|    if (mapped_file_ > 0) {
 | 
|      if (close(mapped_file_) < 0)
 | 
|        PLOG(ERROR) << "close";
 | 
| @@ -468,8 +467,10 @@ bool SharedMemory::ShareToProcessCommon(ProcessHandle process,
 | 
|    new_handle->fd = new_fd;
 | 
|    new_handle->auto_close = true;
 | 
|  
 | 
| -  if (close_self)
 | 
| +  if (close_self) {
 | 
| +    Unmap();
 | 
|      Close();
 | 
| +  }
 | 
|  
 | 
|    return true;
 | 
|  }
 | 
| 
 |