/* Starshatter: The Open Source Project Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. AUTHOR: John DiCamillo OVERVIEW ======== Memory Debugging class */ #ifndef MemDebug_h #define MemDebug_h // +--------------------------------------------------------------------+ #ifdef WIN32 #include #include #endif #ifdef FOUNDATION_USE_MFC #ifndef _DEBUG void* __cdecl operator new[](unsigned int, const char*, int); void* __cdecl operator new(unsigned int s, const char*, int); void __cdecl operator delete[](void* p, const char*, int); void __cdecl operator delete(void* p, const char*, int); #else void* __cdecl operator new[](unsigned int, const char*, int); void* __cdecl operator new(unsigned int s, const char*, int); void __cdecl operator delete[](void* p, const char*, int); void __cdecl operator delete(void* p, const char*, int); #endif #else // // MEMORY DEBUGGING NOT SUPPORTED UNDER MFC // // +--------------------------------------------------------------------+ class Memory { public: enum LEVEL { OFF, LEAKS, PERIODIC, MAXIMAL }; static void OpenLog(const char* filename=0); static void CloseLog(); static void Check(); static void Checkpoint(); static void Stats(); static void DumpLeaks(); static void SetLevel(LEVEL l); }; // +--------------------------------------------------------------------+ #ifndef _DEBUG void* __cdecl operator new[](unsigned int, const char*, int); void* __cdecl operator new(unsigned int s, const char*, int); void __cdecl operator delete[](void* p, const char*, int); void __cdecl operator delete(void* p, const char*, int); #else /*_CRTIMP*/ void* __cdecl operator new[](unsigned int, const char*, int); void* __cdecl operator new(unsigned int, int, const char*, int); void* __cdecl operator new(unsigned int s, const char* f, int l); void* __cdecl operator new(unsigned int s); void __cdecl operator delete[](void* p, const char*, int); void __cdecl operator delete(void* p, const char*, int); #endif // _DEBUG // +--------------------------------------------------------------------+ #endif // FOUNDATION_USE_MFC #endif // MemDebug_h