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
#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
#define STATISTICS_ADD(av, val)
#endif // WXSTRING_STATISTICS
+// ===========================================================================
+// wxStringData class deallocation
+// ===========================================================================
+
+void wxStringData::Free()
+{
+ free(this);
+}
+
// ===========================================================================
// wxString class core
// ===========================================================================