summaryrefslogtreecommitdiffstats
path: root/base/mac/foundation_util.mm
diff options
context:
space:
mode:
Diffstat (limited to 'base/mac/foundation_util.mm')
-rw-r--r--base/mac/foundation_util.mm11
1 files changed, 11 insertions, 0 deletions
diff --git a/base/mac/foundation_util.mm b/base/mac/foundation_util.mm
index e8c3efc..6ad3b01 100644
--- a/base/mac/foundation_util.mm
+++ b/base/mac/foundation_util.mm
@@ -235,6 +235,17 @@ void NSObjectRelease(void* obj) {
[nsobj release];
}
+void* CFTypeRefToNSObjectAutorelease(CFTypeRef cf_object) {
+ // When GC is on, NSMakeCollectable marks cf_object for GC and autorelease
+ // is a no-op.
+ //
+ // In the traditional GC-less environment, NSMakeCollectable is a no-op,
+ // and cf_object is autoreleased, balancing out the caller's ownership claim.
+ //
+ // NSMakeCollectable returns nil when used on a NULL object.
+ return [NSMakeCollectable(cf_object) autorelease];
+}
+
static const char* base_bundle_id;
const char* BaseBundleID() {