Chromium Code Reviews| Index: base/memory/shared_memory_handle_win.cc | 
| diff --git a/base/memory/shared_memory_handle_win.cc b/base/memory/shared_memory_handle_win.cc | 
| index 277a954daa1cd216c55c3b01333cc0fa4838d58a..f74a4597cbe920638eaec526727403e2ffa0142d 100644 | 
| --- a/base/memory/shared_memory_handle_win.cc | 
| +++ b/base/memory/shared_memory_handle_win.cc | 
| @@ -40,6 +40,22 @@ bool SharedMemoryHandle::IsValid() const { | 
| return handle_ != nullptr; | 
| } | 
| +// Duplicates the underlying OS resource. | 
| 
 
Nico
2017/05/02 15:58:45
nit: useless comment
 
erikchen
2017/05/02 18:45:57
Done.
 
 | 
| +SharedMemoryHandle SharedMemoryHandle::Duplicate() const { | 
| + DCHECK(BelongsToCurrentProcess()); | 
| + HANDLE duped_handle; | 
| + ProcessHandle process = GetCurrentProcess(); | 
| + BOOL success = | 
| + ::DuplicateHandle(process, handle_, process, &duped_handle, 0, | 
| + FALSE, DUPLICATE_SAME_ACCESS); | 
| + if (success) { | 
| 
 
Nico
2017/05/02 15:58:45
nit:
  if (!success)
    return SharedMemoryHandl
 
erikchen
2017/05/02 18:45:57
I was wondering if you would nit on this...and bet
 
 | 
| + base::SharedMemoryHandle handle(duped_handle, GetCurrentProcId()); | 
| + handle.SetOwnershipPassesToIPC(true); | 
| + return handle; | 
| + } | 
| + return SharedMemoryHandle(); | 
| +} | 
| + | 
| bool SharedMemoryHandle::BelongsToCurrentProcess() const { | 
| return pid_ == base::GetCurrentProcId(); | 
| } |