From 5f5aa47b4260d4e688acdd85558baedfc99da752 Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 2 Oct 2021 13:41:10 +0200 Subject: Added missing new[] debug overload --- FoundationEx/MemDebug.cpp | 20 ++++++++++++++++++++ FoundationEx/MemDebug.h | 10 ++++++++++ 2 files changed, 30 insertions(+) (limited to 'FoundationEx') diff --git a/FoundationEx/MemDebug.cpp b/FoundationEx/MemDebug.cpp index 2a02a2e..060df5a 100644 --- a/FoundationEx/MemDebug.cpp +++ b/FoundationEx/MemDebug.cpp @@ -89,11 +89,21 @@ void __cdecl operator delete(void* p, const char*, int) #ifndef _DEBUG +void* __cdecl operator new[](unsigned int s, const char*, int) +{ + return ::operator new[](s); +} + 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); +} + void __cdecl operator delete(void* p, const char*, int) { ::operator delete(p); @@ -104,6 +114,11 @@ void __cdecl operator delete(void* p, const char*, int) // No definitions for the following: //void* __cdecl operator new(unsigned int, int, const char*, int) {} +void* __cdecl operator new[](unsigned int s, const char*, int) +{ + return ::operator new[](s); +} + void* __cdecl operator new(unsigned int s, const char* f, int l) { return ::operator new(s, 1, f, l); @@ -114,6 +129,11 @@ 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); +} + void __cdecl operator delete(void* p, const char*, int) { ::operator delete(p); diff --git a/FoundationEx/MemDebug.h b/FoundationEx/MemDebug.h index f8ca60e..bcf217f 100644 --- a/FoundationEx/MemDebug.h +++ b/FoundationEx/MemDebug.h @@ -51,12 +51,16 @@ #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 @@ -89,17 +93,23 @@ public: #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 -- cgit v1.1