From 74b57569a3caaf8758b616f8259b154dcaf1c651 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Fri, 8 Feb 2008 08:04:46 +0000 Subject: [PATCH] Change the __NEXT_RUNTIME__ test to __OBJC_GC__ which is what I really meant but I had to look up which preprocessor define was emitted by -fobjc-gc. Also improve the comments a bit. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/cocoa/ObjcRef.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/wx/cocoa/ObjcRef.h b/include/wx/cocoa/ObjcRef.h index 44acfa8..ff1416e 100644 --- a/include/wx/cocoa/ObjcRef.h +++ b/include/wx/cocoa/ObjcRef.h @@ -15,7 +15,7 @@ // Reuse wxCFRef-related code (e.g. wxCFRetain/wxCFRelease) #include "wx/mac/corefoundation/cfref.h" -// NOTE WELL: We can only know which Objective-C runtime is being used when compiling Objective-C. +// NOTE WELL: We can only know whether or not GC can be used when compiling Objective-C. // Therefore we cannot implement these functions except when compiling Objective-C. #ifdef __OBJC__ /*! @function wxGCSafeRetain @@ -58,7 +58,7 @@ template inline Type * wxGCSafeRetain(Type *r) { -#ifdef __NEXT_RUNTIME__ +#ifdef __OBJC_GC__ return static_cast(wxCFRetain(r)); #else return [r retain]; @@ -90,7 +90,7 @@ inline Type * wxGCSafeRetain(Type *r) template inline void wxGCSafeRelease(Type *r) { -#ifdef __NEXT_RUNTIME__ +#ifdef __OBJC_GC__ wxCFRelease(r); #else [r release]; @@ -99,7 +99,10 @@ inline void wxGCSafeRelease(Type *r) #else // NOTE: When not compiling Objective-C, declare these functions such that they can be // used by other inline-implemented methods. Since those methods in turn will not actually -// be used from non-ObjC code there is no problem. +// be used from non-ObjC code the compiler ought not to emit them. If it emits an out +// of line copy of functions using these functions then presumably it will have also emitted +// in at least one source file an out of line copy of these functions and there will be +// no problem at link time. template inline Type * wxGCSafeRetain(Type *r); -- 2.7.4