mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 09:46:09 +03:00
36 lines
839 B
C++
36 lines
839 B
C++
|
// 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
|