| 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;
|
| }
|
|
|