diff options
Diffstat (limited to '')
-rw-r--r-- | gc/gc_cpp.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/gc/gc_cpp.cc b/gc/gc_cpp.cc index a97091c..f8b803a 100644 --- a/gc/gc_cpp.cc +++ b/gc/gc_cpp.cc @@ -26,15 +26,13 @@ Authors: John R. Ellis and Jesse Hull #include "gc_cpp.h" -#ifndef _MSC_VER -/* In the Visual C++ case, we moved this into the header. */ void* operator new( size_t size ) { return GC_MALLOC_UNCOLLECTABLE( size );} void operator delete( void* obj ) { GC_FREE( obj );} -#ifdef OPERATOR_NEW_ARRAY +#ifdef GC_OPERATOR_NEW_ARRAY void* operator new[]( size_t size ) { return GC_MALLOC_UNCOLLECTABLE( size );} @@ -42,8 +40,22 @@ void* operator new[]( size_t size ) { void operator delete[]( void* obj ) { GC_FREE( obj );} -#endif /* OPERATOR_NEW_ARRAY */ +#endif /* GC_OPERATOR_NEW_ARRAY */ -#endif /* _MSC_VER */ +#ifdef _MSC_VER + +// This new operator is used by VC++ in case of Debug builds ! +void* operator new( size_t size, + int ,//nBlockUse, + const char * szFileName, + int nLine ) +{ +#ifndef GC_DEBUG + return GC_malloc_uncollectable( size ); +#else + return GC_debug_malloc_uncollectable(size, szFileName, nLine); +#endif +} +#endif /* _MSC_VER */ |