Index: base/memory/shared_memory_nacl.cc |
diff --git a/base/memory/shared_memory_nacl.cc b/base/memory/shared_memory_nacl.cc |
index 39625ee65b5087633a6727e9e7515192be227bc3..8435b2ba295c0134b0161968052a4f12685f3cc3 100644 |
--- a/base/memory/shared_memory_nacl.cc |
+++ b/base/memory/shared_memory_nacl.cc |
@@ -46,6 +46,7 @@ SharedMemory::SharedMemory(SharedMemoryHandle handle, bool read_only, |
} |
SharedMemory::~SharedMemory() { |
+ Unmap(); |
Close(); |
} |
@@ -125,7 +126,6 @@ SharedMemoryHandle SharedMemory::handle() const { |
} |
void SharedMemory::Close() { |
- Unmap(); |
if (mapped_file_ > 0) { |
if (close(mapped_file_) < 0) |
DPLOG(ERROR) << "close"; |
@@ -159,8 +159,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; |
} |