17 # define EXTERN extern "C"
19 # define EXTERN extern
22 #if (defined(VT_MEMHOOK))
24 #include "vt_inttypes.h"
28 #define VT_MEMHOOKS_OFF() \
29 if ( vt_memhook_is_initialized && vt_memhook_is_enabled ) { \
30 __malloc_hook = vt_malloc_hook_org; \
31 __realloc_hook = vt_realloc_hook_org; \
32 __free_hook = vt_free_hook_org; \
33 vt_memhook_is_enabled = 0; }
34 #define VT_MEMHOOKS_ON() \
35 if ( vt_memhook_is_initialized && !vt_memhook_is_enabled ) { \
36 __malloc_hook = vt_malloc_hook; \
37 __realloc_hook = vt_realloc_hook; \
38 __free_hook = vt_free_hook; \
39 vt_memhook_is_enabled = 1; }
40 #define VT_MEMHOOKS_ENABLED() vt_memhook_is_enabled
43 EXTERN
void vt_memhook_init(
void);
46 EXTERN
void vt_memhook_finalize(
void);
49 EXTERN
void* vt_malloc_hook(
size_t size,
const void* caller);
50 EXTERN
void* vt_realloc_hook(
void* ptr,
size_t size,
const void* caller);
51 EXTERN
void vt_free_hook(
void* ptr,
const void* caller);
54 EXTERN
void* (*vt_malloc_hook_org)(size_t,
const void *);
55 EXTERN
void* (*vt_realloc_hook_org)(
void* ptr,
size_t size,
const void* caller);
56 EXTERN void (*vt_free_hook_org)(
void* ptr,
const void* caller);
58 EXTERN uint8_t vt_memhook_is_initialized;
59 EXTERN uint8_t vt_memhook_is_enabled;
63 #define VT_MEMHOOKS_OFF()
64 #define VT_MEMHOOKS_ON()
65 #define VT_MEMHOOKS_ENABLED() 0