• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
DuplicatePlatformHandle(PlatformHandle platform_handle)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