| Index: base/memory/shared_memory_win.cc
|
| diff --git a/base/memory/shared_memory_win.cc b/base/memory/shared_memory_win.cc
|
| index 7e0cf0bf23e67f0d13d22e56e0924cecda7456ce..eacf0d6ccefcd97bd42d6758d4c99597d41f1730 100644
|
| --- a/base/memory/shared_memory_win.cc
|
| +++ b/base/memory/shared_memory_win.cc
|
| @@ -100,6 +100,18 @@ size_t SharedMemory::GetHandleLimit() {
|
| return static_cast<size_t>(1 << 23);
|
| }
|
|
|
| +// static
|
| +SharedMemoryHandle SharedMemory::DuplicateHandle(
|
| + const SharedMemoryHandle& handle) {
|
| + ProcessHandle process = GetCurrentProcess();
|
| + SharedMemoryHandle duped_handle;
|
| + BOOL success = ::DuplicateHandle(process, handle, process, &duped_handle, 0,
|
| + FALSE, DUPLICATE_SAME_ACCESS);
|
| + if (success)
|
| + return duped_handle;
|
| + return NULLHandle();
|
| +}
|
| +
|
| bool SharedMemory::CreateAndMapAnonymous(size_t size) {
|
| return CreateAnonymous(size) && Map(size);
|
| }
|
| @@ -242,9 +254,10 @@ bool SharedMemory::ShareToProcessCommon(ProcessHandle process,
|
| return true;
|
| }
|
|
|
| - if (!DuplicateHandle(GetCurrentProcess(), mapped_file, process,
|
| - &result, access, FALSE, options))
|
| + if (!::DuplicateHandle(GetCurrentProcess(), mapped_file, process, &result,
|
| + access, FALSE, options)) {
|
| return false;
|
| + }
|
| *new_handle = result;
|
| return true;
|
| }
|
|
|