summaryrefslogtreecommitdiffhomepage
path: root/FoundationEx
diff options
context:
space:
mode:
Diffstat (limited to 'FoundationEx')
-rw-r--r--FoundationEx/MemDebug.cpp65
-rw-r--r--FoundationEx/MemDebug.h17
2 files changed, 72 insertions, 10 deletions
diff --git a/FoundationEx/MemDebug.cpp b/FoundationEx/MemDebug.cpp
index 2694b33..4f3174f 100644
--- a/FoundationEx/MemDebug.cpp
+++ b/FoundationEx/MemDebug.cpp
@@ -45,7 +45,9 @@
// +--------------------------------------------------------------------+
+#ifndef FOUNDATION_USE_MFC
static Memory::LEVEL mem_chk_level = Memory::PERIODIC;
+#endif
#ifdef _DEBUG
static _CrtMemState mem_chk_p1,
@@ -61,6 +63,66 @@ static HANDLE mem_log_file = 0;
#define CrtClrDebugField(a) _CrtSetDbgFlag(~(a) & _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))
#endif
+#ifdef FOUNDATION_USE_MFC
+
+#ifndef _DEBUG
+
+void* __cdecl operator new(unsigned int s, const char*, int)
+{
+ return ::operator new(s);
+}
+
+void __cdecl operator delete(void* p, const char*, int)
+{
+ ::operator delete(p);
+}
+
+#else
+
+// No definitions for the following:
+//void* __cdecl operator new(unsigned int s, const char*, int) {}
+//void __cdecl operator delete(void* p, const char*, int) {}
+
+#endif
+
+#else // if not defined FOUNDATION_USE_MFC
+
+#ifndef _DEBUG
+
+void* __cdecl operator new(unsigned int s, const char*, int)
+{
+ return ::operator new(s);
+}
+
+void __cdecl operator delete(void* p, const char*, int)
+{
+ ::operator delete(p);
+}
+
+#else
+
+// No definitions for the following:
+//void* __cdecl operator new(unsigned int, int, const char*, int) {}
+
+void* __cdecl operator new(unsigned int s, const char* f, int l)
+{
+ return ::operator new(s, 1, f, l);
+}
+
+void* __cdecl operator new(unsigned int s)
+{
+ return ::operator new(s, 1, __FILE__, __LINE__);
+}
+
+void __cdecl operator delete(void* p, const char*, int)
+{
+ ::operator delete(p);
+}
+
+#endif _DEBUG
+
+#endif FOUNDATION_USE_MFC
+
static void heapdump()
{
_HEAPINFO hinfo;
@@ -107,6 +169,7 @@ static void heapdump()
// +--------------------------------------------------------------------+
+#ifndef FOUNDATION_USE_MFC
void
Memory::OpenLog(const char* filename)
{
@@ -234,3 +297,5 @@ Memory::SetLevel(LEVEL l)
#endif
}
+#endif
+
diff --git a/FoundationEx/MemDebug.h b/FoundationEx/MemDebug.h
index 14bc0cf..0bd63da 100644
--- a/FoundationEx/MemDebug.h
+++ b/FoundationEx/MemDebug.h
@@ -51,8 +51,8 @@
#ifndef _DEBUG
-inline void* __cdecl operator new(unsigned int s, const char*, int) { return ::operator new(s); }
-inline void __cdecl operator delete(void* p, const char*, int) { ::operator delete(p); }
+void* __cdecl operator new(unsigned int s, const char*, int);
+void __cdecl operator delete(void* p, const char*, int);
#else
@@ -89,21 +89,18 @@ public:
#ifndef _DEBUG
-inline void* __cdecl operator new(unsigned int s, const char*, int) { return ::operator new(s); }
-inline void __cdecl operator delete(void* p, const char*, int) { ::operator delete(p); }
+void* __cdecl operator new(unsigned int s, const char*, int);
+void __cdecl operator delete(void* p, const char*, int);
#else
/*_CRTIMP*/
void* __cdecl operator new(unsigned int, int, const char*, int);
-inline void* __cdecl operator new(unsigned int s, const char* f, int l)
- { return ::operator new(s, 1, f, l); }
+void* __cdecl operator new(unsigned int s, const char* f, int l);
-inline void* __cdecl operator new(unsigned int s)
- { return ::operator new(s, 1, __FILE__, __LINE__); }
+void* __cdecl operator new(unsigned int s);
-inline void __cdecl operator delete(void* p, const char*, int)
- { ::operator delete(p); }
+void __cdecl operator delete(void* p, const char*, int);
#endif _DEBUG