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:
@@ -49,12 +49,15 @@
|
|||||||
|
|
||||||
#include <crtdbg.h>
|
#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
|
// this define works around a bug with inline declarations of new, see
|
||||||
//
|
//
|
||||||
// http://support.microsoft.com/support/kb/articles/Q140/8/58.asp
|
// http://support.microsoft.com/support/kb/articles/Q140/8/58.asp
|
||||||
//
|
//
|
||||||
// for the details
|
// for the details
|
||||||
#define new new( _NORMAL_BLOCK, __FILE__, __LINE__)
|
#define new WXDEBUG_NEW
|
||||||
|
|
||||||
#define wxCrtSetDbgFlag(flag) \
|
#define wxCrtSetDbgFlag(flag) \
|
||||||
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag))
|
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag))
|
||||||
|
@@ -540,23 +540,24 @@ private :
|
|||||||
// more debugging macros
|
// 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
|
// 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
|
// compilers, in which case you need to use WXDEBUG_NEW explicitly if you wish
|
||||||
// to use the debugging version.
|
// to use the debugging version.
|
||||||
|
|
||||||
#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS
|
#ifdef __WXDEBUG__
|
||||||
#define new new(__TFILE__,__LINE__)
|
#define WXDEBUG_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
|
#if wxUSE_DEBUG_NEW_ALWAYS
|
||||||
#include "wx/msw/msvcrt.h"
|
#if wxUSE_GLOBAL_MEMORY_OPERATORS
|
||||||
#endif
|
#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__
|
#endif // _WX_OBJECTH__
|
||||||
|
Reference in New Issue
Block a user