mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[llvm-arc-opts] Implement swift_{retain,release}_n.
rdar://21803771 Swift SVN r30204
This commit is contained in:
@@ -287,6 +287,17 @@ static HeapObject *_swift_retain_(HeapObject *object) {
|
||||
}
|
||||
auto swift::_swift_retain = _swift_retain_;
|
||||
|
||||
HeapObject *swift::swift_retain_n(HeapObject *object, uint32_t n) {
|
||||
return _swift_retain_n(object, n);
|
||||
}
|
||||
static HeapObject *_swift_retain_n_(HeapObject *object, uint32_t n) {
|
||||
if (object) {
|
||||
object->refCount.increment(n);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
auto swift::_swift_retain_n = _swift_retain_n_;
|
||||
|
||||
void swift::swift_release(HeapObject *object) {
|
||||
SWIFT_RELEASE();
|
||||
return _swift_release(object);
|
||||
@@ -298,6 +309,16 @@ static void _swift_release_(HeapObject *object) {
|
||||
}
|
||||
auto swift::_swift_release = _swift_release_;
|
||||
|
||||
void swift::swift_release_n(HeapObject *object, uint32_t n) {
|
||||
return _swift_release_n(object, n);
|
||||
}
|
||||
static void _swift_release_n_(HeapObject *object, uint32_t n) {
|
||||
if (object && object->refCount.decrementShouldDeallocateN(n)) {
|
||||
_swift_release_dealloc(object);
|
||||
}
|
||||
}
|
||||
auto swift::_swift_release_n = _swift_release_n_;
|
||||
|
||||
size_t swift::swift_retainCount(HeapObject *object) {
|
||||
return object->refCount.getCount();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user