diff options
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r-- | malloc/malloc.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c index b6fd367f8b..03c3c9a33b 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -2263,6 +2263,43 @@ static void malloc_consolidate(); static Void_t** iALLOc(); #endif + +/* -------------- Early definitions for debugging hooks ---------------- */ + +/* Define and initialize the hook variables. These weak definitions must + appear before any use of the variables in a function (arena.c uses one). */ +#ifndef weak_variable +#ifndef _LIBC +#define weak_variable /**/ +#else +/* In GNU libc we want the hook variables to be weak definitions to + avoid a problem with Emacs. */ +#define weak_variable weak_function +#endif +#endif + +/* Forward declarations. */ +static Void_t* malloc_hook_ini __MALLOC_P ((size_t sz, + const __malloc_ptr_t caller)); +static Void_t* realloc_hook_ini __MALLOC_P ((Void_t* ptr, size_t sz, + const __malloc_ptr_t caller)); +static Void_t* memalign_hook_ini __MALLOC_P ((size_t alignment, size_t sz, + const __malloc_ptr_t caller)); + +void weak_variable (*__malloc_initialize_hook) __MALLOC_P ((void)) = NULL; +void weak_variable (*__free_hook) __MALLOC_P ((__malloc_ptr_t __ptr, + const __malloc_ptr_t)) = NULL; +__malloc_ptr_t weak_variable (*__malloc_hook) + __MALLOC_P ((size_t __size, const __malloc_ptr_t)) = malloc_hook_ini; +__malloc_ptr_t weak_variable (*__realloc_hook) + __MALLOC_P ((__malloc_ptr_t __ptr, size_t __size, const __malloc_ptr_t)) + = realloc_hook_ini; +__malloc_ptr_t weak_variable (*__memalign_hook) + __MALLOC_P ((size_t __alignment, size_t __size, const __malloc_ptr_t)) + = memalign_hook_ini; +void weak_variable (*__after_morecore_hook) __MALLOC_P ((void)) = NULL; + + /* ------------------- Support for multiple arenas -------------------- */ #include "arena.c" |