// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/memory/ref_counted.h" namespace base { namespace subtle { bool RefCountedThreadSafeBase::HasOneRef() const { return ref_count_.IsOne(); } #if defined(ARCH_CPU_64_BIT) void RefCountedBase::AddRefImpl() const { // Check if |ref_count_| overflow only on 64 bit archs since the number of // objects may exceed 2^32. // To avoid the binary size bloat, use non-inline function here. CHECK(++ref_count_ > 0); } #endif #if !defined(ARCH_CPU_X86_FAMILY) bool RefCountedThreadSafeBase::Release() const { return ReleaseImpl(); } void RefCountedThreadSafeBase::AddRef() const { AddRefImpl(); } #endif } // namespace subtle } // namespace base