Index: base/memory/shared_memory_handle_posix.cc |
diff --git a/base/memory/shared_memory_handle_posix.cc b/base/memory/shared_memory_handle_posix.cc |
index b97455962521fd42f561152c935483c91eef429c..09dfb9ca8b1510ab79320b91e5229a1590617d4c 100644 |
--- a/base/memory/shared_memory_handle_posix.cc |
+++ b/base/memory/shared_memory_handle_posix.cc |
@@ -16,15 +16,17 @@ SharedMemoryHandle::SharedMemoryHandle() = default; |
SharedMemoryHandle::SharedMemoryHandle( |
const base::FileDescriptor& file_descriptor, |
+ size_t size, |
const base::UnguessableToken& guid) |
- : file_descriptor_(file_descriptor), guid_(guid) {} |
+ : file_descriptor_(file_descriptor), guid_(guid), size_(size) {} |
// static |
-SharedMemoryHandle SharedMemoryHandle::ImportHandle(int fd) { |
+SharedMemoryHandle SharedMemoryHandle::ImportHandle(int fd, size_t size) { |
SharedMemoryHandle handle; |
handle.file_descriptor_.fd = fd; |
handle.file_descriptor_.auto_close = false; |
handle.guid_ = UnguessableToken::Create(); |
+ handle.size_ = size; |
return handle; |
} |
@@ -32,10 +34,6 @@ int SharedMemoryHandle::GetHandle() const { |
return file_descriptor_.fd; |
} |
-void SharedMemoryHandle::SetHandle(int handle) { |
- file_descriptor_.fd = handle; |
-} |
- |
bool SharedMemoryHandle::IsValid() const { |
return file_descriptor_.fd >= 0; |
} |
@@ -58,7 +56,8 @@ SharedMemoryHandle SharedMemoryHandle::Duplicate() const { |
int duped_handle = HANDLE_EINTR(dup(file_descriptor_.fd)); |
if (duped_handle < 0) |
return SharedMemoryHandle(); |
- return SharedMemoryHandle(FileDescriptor(duped_handle, true), GetGUID()); |
+ return SharedMemoryHandle(FileDescriptor(duped_handle, true), GetSize(), |
+ GetGUID()); |
} |
void SharedMemoryHandle::SetOwnershipPassesToIPC(bool ownership_passes) { |