Home | History | Annotate | Download | only in embedder
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "mojo/embedder/platform_handle_utils.h"
      6 
      7 #include <windows.h>
      8 
      9 #include "base/logging.h"
     10 
     11 namespace mojo {
     12 namespace embedder {
     13 
     14 ScopedPlatformHandle DuplicatePlatformHandle(PlatformHandle platform_handle) {
     15   DCHECK(platform_handle.is_valid());
     16 
     17   HANDLE new_handle;
     18   if (!DuplicateHandle(GetCurrentProcess(),
     19                        platform_handle.handle,
     20                        GetCurrentProcess(),
     21                        &new_handle,
     22                        0,
     23                        TRUE,
     24                        DUPLICATE_SAME_ACCESS))
     25     return ScopedPlatformHandle();
     26   DCHECK_NE(new_handle, INVALID_HANDLE_VALUE);
     27   return ScopedPlatformHandle(PlatformHandle(new_handle));
     28 }
     29 
     30 }  // namespace embedder
     31 }  // namespace mojo
     32