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:
Gilles Depeyrot
2003-05-28 21:11:17 +00:00
parent ff818ab87b
commit ca5e07c768
2 changed files with 15 additions and 1 deletions

View File

@@ -195,7 +195,12 @@ struct WXDLLEXPORT wxStringData
#if defined(__VISUALC__) && (__VISUALC__ >= 1200)
__forceinline
#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
// intentionally put in invalid state