VC++ free must take place in same DLL as allocation when using non dll
run-time library (e.g. Multithreaded instead of Multithreaded DLL) we must not inline wxStringData deallocation since allocation is not inlined git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -195,7 +195,12 @@ struct WXDLLEXPORT wxStringData
|
|||||||
#if defined(__VISUALC__) && (__VISUALC__ >= 1200)
|
#if defined(__VISUALC__) && (__VISUALC__ >= 1200)
|
||||||
__forceinline
|
__forceinline
|
||||||
#endif
|
#endif
|
||||||
void Unlock() { if ( !IsEmpty() && --nRefs == 0) free(this); }
|
void Unlock() { if ( !IsEmpty() && --nRefs == 0) Free(); }
|
||||||
|
|
||||||
|
// VC++ free must take place in same DLL as allocation when using non dll
|
||||||
|
// run-time library (e.g. Multithreaded instead of Multithreaded DLL)
|
||||||
|
// we must not inline deallocation since allocation is not inlined
|
||||||
|
void Free();
|
||||||
|
|
||||||
// if we had taken control over string memory (GetWriteBuf), it's
|
// if we had taken control over string memory (GetWriteBuf), it's
|
||||||
// intentionally put in invalid state
|
// intentionally put in invalid state
|
||||||
|
@@ -160,6 +160,15 @@ wxSTD ostream& operator<<(wxSTD ostream& os, const wxString& str)
|
|||||||
#define STATISTICS_ADD(av, val)
|
#define STATISTICS_ADD(av, val)
|
||||||
#endif // WXSTRING_STATISTICS
|
#endif // WXSTRING_STATISTICS
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
// wxStringData class deallocation
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
void wxStringData::Free()
|
||||||
|
{
|
||||||
|
free(this);
|
||||||
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// wxString class core
|
// wxString class core
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
Reference in New Issue
Block a user