X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72cdf4c9b3ce92addf09cfb322f0c19bfb0f8744..7b9da2077d0975db6c965a85c91d5aca671ab5e3:/src/common/object.cpp diff --git a/src/common/object.cpp b/src/common/object.cpp index 0672600cf9..de51bf7c62 100644 --- a/src/common/object.cpp +++ b/src/common/object.cpp @@ -138,7 +138,7 @@ void wxObject::operator delete(void* pData, char* /* fileName */, int /* lineNum #endif // Cause problems for VC++ - crashes -#if !defined(__VISUALC__) && wxUSE_ARRAY_MEMORY_OPERATORS +#if (!defined(__VISUALC__) && wxUSE_ARRAY_MEMORY_OPERATORS ) || defined(__MWERKS__) void * wxObject::operator new[] (size_t size, wxChar * fileName, int lineNum) { return wxDebugAlloc(size, fileName, lineNum, TRUE, TRUE); @@ -205,7 +205,7 @@ bool wxClassInfo::IsKindOf(wxClassInfo *info) const // PROBABLY NO LONGER TRUE now I've done DLL creation right. /* #if WXMAKINGDLL -if (GetClassName() && info->GetClassName() && (strcmp(GetClassName(), info->GetClassName()) == 0)) +if (GetClassName() && info->GetClassName() && (wxStrcmp(GetClassName(), info->GetClassName()) == 0)) return TRUE; #else */ @@ -355,13 +355,15 @@ void wxObject::Ref(const wxObject& clone) void wxObject::UnRef() { - if (m_refData) { - assert(m_refData->m_count > 0); - --(m_refData->m_count); - if (m_refData->m_count == 0) + if ( m_refData ) + { + wxASSERT_MSG( m_refData->m_count > 0, _T("invalid ref data count") ); + + if ( !--m_refData->m_count ) delete m_refData; + + m_refData = (wxObjectRefData *) NULL; } - m_refData = (wxObjectRefData *) NULL; } /*