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
This commit is contained in:
Vadim Zeitlin 2006-10-24 23:19:12 +00:00
parent 66493fc767
commit 70bf61807a
2 changed files with 19 additions and 15 deletions

View File

@ -49,12 +49,15 @@
#include <crtdbg.h>
#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))

View File

@ -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__