]> git.saurik.com Git - wxWidgets.git/commitdiff
adding gc aware code, fixes #11061
authorStefan Csomor <csomor@advancedconcepts.ch>
Wed, 19 Aug 2009 13:01:08 +0000 (13:01 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Wed, 19 Aug 2009 13:01:08 +0000 (13:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/cocoa/menu.mm
src/osx/cocoa/window.mm

index cce72f426058e058f3dd2373e10612427d4aae25..34cd2079e2e5daabe7bbcfd51e61e72542b9f60d 100644 (file)
@@ -55,7 +55,7 @@
 
 @end
 
-@interface wxNSMenuController : NSObject
+@interface wxNSMenuController : NSObject <NSMenuDelegate>
 {
 }
 
@@ -133,6 +133,10 @@ public :
         }
         [menu setDelegate:controller];
         [m_osxMenu setImplementation:this];
+        // gc aware
+        if ( m_osxMenu )
+            CFRetain(m_osxMenu);
+        [m_osxMenu release];
     }
     
     virtual ~wxMenuCocoaImpl();
@@ -196,7 +200,9 @@ wxMenuCocoaImpl::~wxMenuCocoaImpl()
 {
     [m_osxMenu setDelegate:nil];
     [m_osxMenu setImplementation:nil];
-    [m_osxMenu release];
+    // gc aware
+    if ( m_osxMenu )
+        CFRelease(m_osxMenu);
 }
 
 wxMenuImpl* wxMenuImpl::Create( wxMenu* peer, const wxString& title )
index 1e7bfd251b2e94e5edb0f89b4af9b8ed3415e4fa..f645830968ac79d4e01aebaeb62013218a8c0b4d 100644 (file)
@@ -1127,6 +1127,10 @@ wxWidgetCocoaImpl::wxWidgetCocoaImpl( wxWindowMac* peer , WXWidget w, bool isRoo
 {
     Init();
     m_osxView = w;
+    // gc aware handling
+    if ( m_osxView )
+        CFRetain(m_osxView);
+    [m_osxView release];
 }
 
 wxWidgetCocoaImpl::wxWidgetCocoaImpl() 
@@ -1152,7 +1156,9 @@ wxWidgetCocoaImpl::~wxWidgetCocoaImpl()
         if ( sv != nil )
             [m_osxView removeFromSuperview];
     }
-    [m_osxView release];
+    // gc aware handling
+    if ( m_osxView )
+        CFRelease(m_osxView);
 }
     
 bool wxWidgetCocoaImpl::IsVisible() const