From 70bf61807aebdb7f4c36d64f2a4cbbbc0ee1bc8a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 24 Oct 2006 23:19:12 +0000 Subject: [PATCH] define WXDEBUG_NEW to use special VC++-specific new version too (closes 1386286) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42363 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/msvcrt.h | 5 ++++- include/wx/object.h | 29 +++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/include/wx/msw/msvcrt.h b/include/wx/msw/msvcrt.h index 0b08fc2f12..c5afed22c7 100644 --- a/include/wx/msw/msvcrt.h +++ b/include/wx/msw/msvcrt.h @@ -49,12 +49,15 @@ #include + #undef WXDEBUG_NEW + #define WXDEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) + // this define works around a bug with inline declarations of new, see // // http://support.microsoft.com/support/kb/articles/Q140/8/58.asp // // for the details - #define new new( _NORMAL_BLOCK, __FILE__, __LINE__) + #define new WXDEBUG_NEW #define wxCrtSetDbgFlag(flag) \ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag)) diff --git a/include/wx/object.h b/include/wx/object.h index dfb88a48c6..c268f677b4 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -540,23 +540,24 @@ private : // more debugging macros // ---------------------------------------------------------------------------- -#ifdef __WXDEBUG__ - #ifndef WXDEBUG_NEW - #define WXDEBUG_NEW new(__TFILE__,__LINE__) - #endif -#else // !__WXDEBUG__ - #define WXDEBUG_NEW new -#endif - // Redefine new to be the debugging version. This doesn't work with all // compilers, in which case you need to use WXDEBUG_NEW explicitly if you wish // to use the debugging version. -#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS - #define new new(__TFILE__,__LINE__) -#elif (defined(__WXDEBUG__) && defined(__VISUALC__) && !wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS) - // Including this file redefines new and allows leak reports to contain line numbers - #include "wx/msw/msvcrt.h" -#endif +#ifdef __WXDEBUG__ + #define WXDEBUG_NEW new(__TFILE__,__LINE__) + + #if wxUSE_DEBUG_NEW_ALWAYS + #if wxUSE_GLOBAL_MEMORY_OPERATORS + #define new WXDEBUG_NEW + #elif defined(__VISUALC__) + // Including this file redefines new and allows leak reports to + // contain line numbers + #include "wx/msw/msvcrt.h" + #endif + #endif // wxUSE_DEBUG_NEW_ALWAYS +#else // !__WXDEBUG__ + #define WXDEBUG_NEW new +#endif // __WXDEBUG__/!__WXDEBUG__ #endif // _WX_OBJECTH__ -- 2.45.2