]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/app.cpp
adding an autorelease capability (got weird crashes when deleting tools from a toolba...
[wxWidgets.git] / src / mac / carbon / app.cpp
index e997cc3e1b15c2c447fe1035c176c85f1ccac924..8c52e9f221d625a17794475f4ecd4d42b9a3760c 100644 (file)
@@ -1231,6 +1231,14 @@ void wxApp::MacHandleUnhandledEvent( WXEVENTREF evr )
     // Override to process unhandled events as you please
 }
 
     // Override to process unhandled events as you please
 }
 
+CFMutableArrayRef GetAutoReleaseArray()
+{
+    static CFMutableArrayRef array = 0;
+    if ( array == 0)
+        array= CFArrayCreateMutable(kCFAllocatorDefault,0,&kCFTypeArrayCallBacks);
+    return array;
+}
+
 void wxApp::MacHandleOneEvent( WXEVENTREF evr )
 {
     EventTargetRef theTarget;
 void wxApp::MacHandleOneEvent( WXEVENTREF evr )
 {
     EventTargetRef theTarget;
@@ -1246,6 +1254,13 @@ void wxApp::MacHandleOneEvent( WXEVENTREF evr )
 #if wxUSE_THREADS
     wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
 #if wxUSE_THREADS
     wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
+
+    CFArrayRemoveAllValues( GetAutoReleaseArray() );
+}
+
+void wxApp::MacAddToAutorelease( void* cfrefobj )
+{
+    CFArrayAppendValue( GetAutoReleaseArray(), cfrefobj );
 }
 
 long wxMacTranslateKey(unsigned char key, unsigned char code)
 }
 
 long wxMacTranslateKey(unsigned char key, unsigned char code)