switching to autorelease
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "wx/app.h"
|
||||||
#include "wx/mac/uma.h"
|
#include "wx/mac/uma.h"
|
||||||
#include "wx/geometry.h"
|
#include "wx/geometry.h"
|
||||||
|
|
||||||
@@ -115,7 +116,8 @@ public:
|
|||||||
{
|
{
|
||||||
CFIndex count = CFGetRetainCount( m_toolbarItemRef ) ;
|
CFIndex count = CFGetRetainCount( m_toolbarItemRef ) ;
|
||||||
wxASSERT_MSG( count == 1 , wxT("Reference Count of native tool was not 1 in wxToolBarTool destructor") );
|
wxASSERT_MSG( count == 1 , wxT("Reference Count of native tool was not 1 in wxToolBarTool destructor") );
|
||||||
CFRelease( m_toolbarItemRef );
|
wxTheApp->MacAddToAutorelease(m_toolbarItemRef);
|
||||||
|
CFRelease(m_toolbarItemRef);
|
||||||
m_toolbarItemRef = NULL;
|
m_toolbarItemRef = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -615,9 +617,11 @@ static pascal OSStatus ControlToolbarItemHandler( EventHandlerCallRef inCallRef,
|
|||||||
// we've increased the ref count when creating this, so we decrease manually again in case
|
// we've increased the ref count when creating this, so we decrease manually again in case
|
||||||
// it was never really installed and deinstalled
|
// it was never really installed and deinstalled
|
||||||
HIViewRef viewRef = object->viewRef ;
|
HIViewRef viewRef = object->viewRef ;
|
||||||
if( viewRef && CFGetRetainCount( viewRef ) > 1 )
|
if( viewRef && IsValidControlHandle( viewRef) )
|
||||||
{
|
{
|
||||||
CFRelease( viewRef ) ;
|
CFIndex count = CFGetRetainCount( viewRef ) ;
|
||||||
|
if ( count >= 1 )
|
||||||
|
CFRelease( viewRef ) ;
|
||||||
}
|
}
|
||||||
free( object ) ;
|
free( object ) ;
|
||||||
result = noErr;
|
result = noErr;
|
||||||
|
@@ -865,10 +865,8 @@ void wxMacControl::Dispose()
|
|||||||
{
|
{
|
||||||
wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") );
|
wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") );
|
||||||
|
|
||||||
CFIndex count = CFGetRetainCount( m_controlRef ) ;
|
// we cannot check the ref count here anymore, as autorelease objects might delete their refs later
|
||||||
wxASSERT_MSG( count == 1 , wxT("Reference Count of native control was not 1 in Dispose") );
|
CFRelease(m_controlRef);
|
||||||
|
|
||||||
::DisposeControl( m_controlRef );
|
|
||||||
m_controlRef = NULL;
|
m_controlRef = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user