--- parser3/src/include/pa_memory.h 2017/11/15 22:48:57 1.32 +++ parser3/src/include/pa_memory.h 2017/11/18 17:42:39 1.34 @@ -9,7 +9,7 @@ #ifndef PA_MEMORY_H #define PA_MEMORY_H -#define IDENT_PA_MEMORY_H "$Id: pa_memory.h,v 1.32 2017/11/15 22:48:57 moko Exp $" +#define IDENT_PA_MEMORY_H "$Id: pa_memory.h,v 1.34 2017/11/18 17:42:39 moko Exp $" // include @@ -19,6 +19,8 @@ // define destructors use for Array, Hash and VMethodFrame #define USE_DESTRUCTORS +// std::basic_stringstream used in ^table.csv-string[] is compatible with delete usage check only under Debian 9 +// #define CHECK_DELETE_USAGE inline void* pa_gc_malloc(size_t size) { return GC_MALLOC(size); } inline void* pa_gc_malloc_atomic(size_t size) { return GC_MALLOC_ATOMIC(size); } @@ -122,11 +124,13 @@ typedef PA_Allocated PA_Object; void *new_disabled(); void delete_disabled(); -inline void *operator new[] (std::size_t size) PA_THROW(std::bad_alloc){ return new_disabled(); } -inline void operator delete[](void *ptr) throw(){ delete_disabled(); } +inline void *operator new[] (std::size_t) PA_THROW(std::bad_alloc){ return new_disabled(); } +inline void operator delete[](void *) throw(){ delete_disabled(); } -inline void *operator new(std::size_t size) PA_THROW(std::bad_alloc){ return new_disabled(); } -inline void operator delete(void *ptr) throw(){ delete_disabled(); } +inline void *operator new(std::size_t) PA_THROW(std::bad_alloc){ return new_disabled(); } +#ifdef CHECK_DELETE_USAGE +inline void operator delete(void *) throw(){ delete_disabled(); } +#endif // other regular allocators as disabled from accidental use as well