diff options
author | Calvin Morrison <calvin@pobox.com> | 2023-04-05 14:13:39 -0400 |
---|---|---|
committer | Calvin Morrison <calvin@pobox.com> | 2023-04-05 14:13:39 -0400 |
commit | 835e373b3eeaabcd0621ed6798ab500f37982fae (patch) | |
tree | dfa16b0e2e1b4956b38f693220eac4e607802133 /goo/gmempp.cc |
Diffstat (limited to 'goo/gmempp.cc')
-rw-r--r-- | goo/gmempp.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/goo/gmempp.cc b/goo/gmempp.cc new file mode 100644 index 0000000..fe5790b --- /dev/null +++ b/goo/gmempp.cc @@ -0,0 +1,51 @@ +//======================================================================== +// +// gmempp.cc +// +// Use gmalloc/gfree for C++ new/delete operators. +// +// Copyright 1996-2003 Glyph & Cog, LLC +// +//======================================================================== + +#include <aconf.h> +#include "gmem.h" +// NB: do not include gmempp.h here. + +#ifdef DEBUG_MEM + +void *operator new(size_t size) { + return gmalloc((int)size, 1); +} + +void *operator new(size_t size, int dummy) { + return gmalloc((int)size, 0); +} + +void *operator new[](size_t size) { + return gmalloc((int)size, 1); +} + +void *operator new[](size_t size, int dummy) { + return gmalloc((int)size, 0); +} + +void operator delete(void *p) { + gfree(p); +} + +// This is only called if a constructor throws an exception. +void operator delete(void *p, int dummy) { + gfree(p); +} + +void operator delete[](void *p) { + gfree(p); +} + +// This is only called if a constructor throws an exception. +void operator delete[](void *p, int dummy) { + gfree(p); +} + +#endif |