X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0c7cfd990d3e7cdb62be89cce44b37f21a7161ad..59f098d159a85ad588c000a4528ea04200577781:/include/wx/string.h diff --git a/include/wx/string.h b/include/wx/string.h index 45e8aa0384..3713e7b095 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -183,7 +183,7 @@ inline const wxString& wxGetEmptyString() { return *(wxString *)&wxEmptyString; #endif #if (defined(__GNUG__) && (__GNUG__ < 3)) || \ - (defined(_MSC_VER) && (_MSC_VER <= 1100)) + (defined(_MSC_VER) && (_MSC_VER <= 1200)) #define wxSTRING_BASE_HASNT_CLEAR #endif @@ -216,7 +216,7 @@ struct WXDLLIMPEXP_BASE wxStringData // VC++ will refuse to inline Unlock but profiling shows that it is wrong #if defined(__VISUALC__) && (__VISUALC__ >= 1200) - __forceinline + __forceinline #endif // VC++ free must take place in same DLL as allocation when using non dll // run-time library (e.g. Multithreaded instead of Multithreaded DLL) @@ -331,8 +331,21 @@ public: wxStringBase(const void *pStart, const void *pEnd); // dtor is not virtual, this class must not be inherited from! - ~wxStringBase() { GetStringData()->Unlock(); } + ~wxStringBase() + { +#if defined(__VISUALC__) && (__VISUALC__ >= 1200) + //RN - according to the above VC++ does indeed inline this, + //even though it spits out two warnings + #pragma warning (disable:4714) +#endif + GetStringData()->Unlock(); + } + +#if defined(__VISUALC__) && (__VISUALC__ >= 1200) + //re-enable inlining warning + #pragma warning (default:4714) +#endif // overloaded assignment // from another wxString wxStringBase& operator=(const wxStringBase& stringSrc);