1// Copyright (c) 2012 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 "base/mac/scoped_mach_port.h"
6
7#include "base/mac/mach_logging.h"
8
9namespace base {
10namespace mac {
11namespace internal {
12
13// static
14void SendRightTraits::Free(mach_port_t port) {
15  kern_return_t kr = mach_port_deallocate(mach_task_self(), port);
16  MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr)
17      << "ScopedMachSendRight mach_port_deallocate";
18}
19
20// static
21void ReceiveRightTraits::Free(mach_port_t port) {
22  kern_return_t kr =
23      mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1);
24  MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr)
25      << "ScopedMachReceiveRight mach_port_mod_refs";
26}
27
28}  // namespace internal
29}  // namespace mac
30}  // namespace base
31