41#ifndef _QX_MODE_RELEASE
42#if _QX_USE_MEM_LEAK_DETECTION
67#ifndef HAVE_PLACEMENT_DELETE
68#define HAVE_PLACEMENT_DELETE 1
95#ifndef _DEBUG_NEW_REDEFINE_NEW
96#define _DEBUG_NEW_REDEFINE_NEW 1
106#ifndef _DEBUG_NEW_CALLER_ADDRESS
108#define _DEBUG_NEW_CALLER_ADDRESS __builtin_return_address(0)
110#define _DEBUG_NEW_CALLER_ADDRESS NULL
122#define DEBUG_NEW qx::memory::__debug_new_recorder(__FILE__, __LINE__, __FUNCTION__) ->* new
124#if _DEBUG_NEW_REDEFINE_NEW
128#ifdef _DEBUG_NEW_EMULATE_MALLOC
131#define malloc(s) ((void*)(new char[s]))
133#define malloc(s) ((void*)(DEBUG_NEW char[s]))
135#define free(p) delete[] (char*)(p)
139QX_DLL_EXPORT void *
operator new[](
size_t size,
const char * file,
int line);
141#if HAVE_PLACEMENT_DELETE
142QX_DLL_EXPORT void operator delete(
void * pointer,
const char * file,
int line)
throw();
143QX_DLL_EXPORT void operator delete[](
void * pointer,
const char * file,
int line)
throw();
146#if defined(_MSC_VER) && _MSC_VER < 1300
149QX_DLL_EXPORT void *
operator new[](size_t)
throw(std::bad_alloc);
183 : _M_file(file), _M_line(line), _M_fct(fct) {}
190 template <
class _Tp> _Tp*
operator->*(_Tp* pointer) { _M_process(pointer);
return pointer; };
List of common macros used by QxOrm library.
static void free_pointer(void *pointer, void *addr, bool is_array)
__debug_new_recorder(const char *file, int line, const char *fct)
__debug_new_recorder(const __debug_new_recorder &)
void _M_process(void *pointer)
_Tp * operator->*(_Tp *pointer)
__debug_new_recorder & operator=(const __debug_new_recorder &)
const char * new_progname
QX_DLL_EXPORT int check_mem_corruption()
static __debug_new_counter __debug_new_count
QX_DLL_EXPORT int check_leaks()
Root namespace for all QxOrm library features.