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/edk/embedder/platform_handle_utils.h"
6 
7 #include <unistd.h>
8 
9 #include "base/logging.h"
10 
11 namespace mojo {
12 namespace edk {
13 
DuplicatePlatformHandle(PlatformHandle platform_handle)14 ScopedPlatformHandle DuplicatePlatformHandle(PlatformHandle platform_handle) {
15   DCHECK(platform_handle.is_valid());
16   // Note that |dup()| returns -1 on error (which is exactly the value we use
17   // for invalid |PlatformHandle| FDs).
18   PlatformHandle duped(dup(platform_handle.handle));
19   duped.needs_connection = platform_handle.needs_connection;
20   return ScopedPlatformHandle(duped);
21 }
22 
23 }  // namespace edk
24 }  // namespace mojo
25