diff options
Diffstat (limited to 'malloc')
-rw-r--r-- | malloc/arena.c | 8 | ||||
-rw-r--r-- | malloc/hooks.c | 6 | ||||
-rw-r--r-- | malloc/malloc.c | 38 | ||||
-rw-r--r-- | malloc/malloc.h | 13 | ||||
-rw-r--r-- | malloc/mcheck.c | 23 | ||||
-rw-r--r-- | malloc/memusagestat.c | 108 | ||||
-rw-r--r-- | malloc/morecore.c | 11 | ||||
-rw-r--r-- | malloc/mtrace.c | 19 |
8 files changed, 121 insertions, 105 deletions
diff --git a/malloc/arena.c b/malloc/arena.c index 7d51a9dd14..12a48ad7ba 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -144,11 +144,9 @@ int __malloc_initialized = -1; /* atfork support. */ -static __malloc_ptr_t (*save_malloc_hook) (size_t __size, - const __malloc_ptr_t); -static void (*save_free_hook) (__malloc_ptr_t __ptr, - const __malloc_ptr_t); -static void* save_arena; +static void *(*save_malloc_hook) (size_t __size, const void *); +static void (*save_free_hook) (void *__ptr, const void *); +static void *save_arena; #ifdef ATFORK_MEM ATFORK_MEM; diff --git a/malloc/hooks.c b/malloc/hooks.c index 05cc35e849..8e4a6ed033 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -25,7 +25,7 @@ initialization routine, then do the normal work. */ static void* -malloc_hook_ini(size_t sz, const __malloc_ptr_t caller) +malloc_hook_ini(size_t sz, const void *caller) { __malloc_hook = NULL; ptmalloc_init(); @@ -33,7 +33,7 @@ malloc_hook_ini(size_t sz, const __malloc_ptr_t caller) } static void* -realloc_hook_ini(void* ptr, size_t sz, const __malloc_ptr_t caller) +realloc_hook_ini(void* ptr, size_t sz, const void *caller) { __malloc_hook = NULL; __realloc_hook = NULL; @@ -42,7 +42,7 @@ realloc_hook_ini(void* ptr, size_t sz, const __malloc_ptr_t caller) } static void* -memalign_hook_ini(size_t alignment, size_t sz, const __malloc_ptr_t caller) +memalign_hook_ini(size_t alignment, size_t sz, const void *caller) { __memalign_hook = NULL; ptmalloc_init(); diff --git a/malloc/malloc.c b/malloc/malloc.c index bbb035393f..70b9329cc3 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1841,22 +1841,22 @@ static void malloc_consolidate(mstate); /* Forward declarations. */ static void* malloc_hook_ini (size_t sz, - const __malloc_ptr_t caller) __THROW; + const void *caller) __THROW; static void* realloc_hook_ini (void* ptr, size_t sz, - const __malloc_ptr_t caller) __THROW; + const void *caller) __THROW; static void* memalign_hook_ini (size_t alignment, size_t sz, - const __malloc_ptr_t caller) __THROW; + const void *caller) __THROW; void weak_variable (*__malloc_initialize_hook) (void) = NULL; -void weak_variable (*__free_hook) (__malloc_ptr_t __ptr, - const __malloc_ptr_t) = NULL; -__malloc_ptr_t weak_variable (*__malloc_hook) - (size_t __size, const __malloc_ptr_t) = malloc_hook_ini; -__malloc_ptr_t weak_variable (*__realloc_hook) - (__malloc_ptr_t __ptr, size_t __size, const __malloc_ptr_t) +void weak_variable (*__free_hook) (void *__ptr, + const void *) = NULL; +void *weak_variable (*__malloc_hook) + (size_t __size, const void *) = malloc_hook_ini; +void *weak_variable (*__realloc_hook) + (void *__ptr, size_t __size, const void *) = realloc_hook_ini; -__malloc_ptr_t weak_variable (*__memalign_hook) - (size_t __alignment, size_t __size, const __malloc_ptr_t) +void *weak_variable (*__memalign_hook) + (size_t __alignment, size_t __size, const void *) = memalign_hook_ini; void weak_variable (*__after_morecore_hook) (void) = NULL; @@ -2842,7 +2842,7 @@ __libc_malloc(size_t bytes) mstate ar_ptr; void *victim; - __malloc_ptr_t (*hook) (size_t, const __malloc_ptr_t) + void *(*hook) (size_t, const void *) = force_reg (__malloc_hook); if (__builtin_expect (hook != NULL, 0)) return (*hook)(bytes, RETURN_ADDRESS (0)); @@ -2873,7 +2873,7 @@ __libc_free(void* mem) mstate ar_ptr; mchunkptr p; /* chunk corresponding to mem */ - void (*hook) (__malloc_ptr_t, const __malloc_ptr_t) + void (*hook) (void *, const void *) = force_reg (__free_hook); if (__builtin_expect (hook != NULL, 0)) { (*hook)(mem, RETURN_ADDRESS (0)); @@ -2912,7 +2912,7 @@ __libc_realloc(void* oldmem, size_t bytes) void* newp; /* chunk to return */ - __malloc_ptr_t (*hook) (__malloc_ptr_t, size_t, const __malloc_ptr_t) = + void *(*hook) (void *, size_t, const void *) = force_reg (__realloc_hook); if (__builtin_expect (hook != NULL, 0)) return (*hook)(oldmem, bytes, RETURN_ADDRESS (0)); @@ -3004,7 +3004,7 @@ __libc_memalign(size_t alignment, size_t bytes) mstate ar_ptr; void *p; - __malloc_ptr_t (*hook) (size_t, size_t, const __malloc_ptr_t) = + void *(*hook) (size_t, size_t, const void *) = force_reg (__memalign_hook); if (__builtin_expect (hook != NULL, 0)) return (*hook)(alignment, bytes, RETURN_ADDRESS (0)); @@ -3046,7 +3046,7 @@ __libc_valloc(size_t bytes) size_t pagesz = GLRO(dl_pagesize); - __malloc_ptr_t (*hook) (size_t, size_t, const __malloc_ptr_t) = + void *(*hook) (size_t, size_t, const void *) = force_reg (__memalign_hook); if (__builtin_expect (hook != NULL, 0)) return (*hook)(pagesz, bytes, RETURN_ADDRESS (0)); @@ -3082,7 +3082,7 @@ __libc_pvalloc(size_t bytes) size_t page_mask = GLRO(dl_pagesize) - 1; size_t rounded_bytes = (bytes + page_mask) & ~(page_mask); - __malloc_ptr_t (*hook) (size_t, size_t, const __malloc_ptr_t) = + void *(*hook) (size_t, size_t, const void *) = force_reg (__memalign_hook); if (__builtin_expect (hook != NULL, 0)) return (*hook)(pagesz, rounded_bytes, RETURN_ADDRESS (0)); @@ -3125,7 +3125,7 @@ __libc_calloc(size_t n, size_t elem_size) } } - __malloc_ptr_t (*hook) (size_t, const __malloc_ptr_t) = + void *(*hook) (size_t, const void *) = force_reg (__malloc_hook); if (__builtin_expect (hook != NULL, 0)) { sz = bytes; @@ -4916,7 +4916,7 @@ __posix_memalign (void **memptr, size_t alignment, size_t size) /* Call the hook here, so that caller is posix_memalign's caller and not posix_memalign itself. */ - __malloc_ptr_t (*hook) (size_t, size_t, const __malloc_ptr_t) = + void *(*hook) (size_t, size_t, const void *) = force_reg (__memalign_hook); if (__builtin_expect (hook != NULL, 0)) mem = (*hook)(alignment, size, RETURN_ADDRESS (0)); diff --git a/malloc/malloc.h b/malloc/malloc.h index 9fe7ab26bc..b8b0ca34ca 100644 --- a/malloc/malloc.h +++ b/malloc/malloc.h @@ -22,11 +22,6 @@ #include <features.h> #include <stddef.h> #include <stdio.h> -# define __malloc_ptr_t void * - -/* Used by GNU libc internals. */ -#define __malloc_size_t size_t -#define __malloc_ptrdiff_t ptrdiff_t #ifdef _LIBC # define __MALLOC_HOOK_VOLATILE @@ -153,18 +148,18 @@ extern void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void) __MALLOC_DEPRECATED; /* Hooks for debugging and user-defined versions. */ extern void (*__MALLOC_HOOK_VOLATILE __free_hook) (void *__ptr, - const __malloc_ptr_t) + const void *) __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __malloc_hook) (size_t __size, - const __malloc_ptr_t) + const void *) __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __realloc_hook) (void *__ptr, size_t __size, - const __malloc_ptr_t) + const void *) __MALLOC_DEPRECATED; extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook) (size_t __alignment, size_t __size, - const __malloc_ptr_t) + const void *) __MALLOC_DEPRECATED; extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); diff --git a/malloc/mcheck.c b/malloc/mcheck.c index b6eb3b31e5..2e5eadd80a 100644 --- a/malloc/mcheck.c +++ b/malloc/mcheck.c @@ -29,11 +29,10 @@ /* Old hook values. */ static void (*old_free_hook) (__ptr_t ptr, const __ptr_t); -static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t); -static __ptr_t (*old_memalign_hook) (__malloc_size_t alignment, - __malloc_size_t size, +static __ptr_t (*old_malloc_hook) (size_t size, const __ptr_t); +static __ptr_t (*old_memalign_hook) (size_t alignment, size_t size, const __ptr_t); -static __ptr_t (*old_realloc_hook) (__ptr_t ptr, __malloc_size_t size, +static __ptr_t (*old_realloc_hook) (__ptr_t ptr, size_t size, const __ptr_t); /* Function to call when something awful happens. */ @@ -48,7 +47,7 @@ static void (*abortfunc) (enum mcheck_status); struct hdr { - __malloc_size_t size; /* Exact size requested by user. */ + size_t size; /* Exact size requested by user. */ unsigned long int magic; /* Magic number to check header integrity. */ struct hdr *prev; struct hdr *next; @@ -69,12 +68,12 @@ static int pedantic; # include <string.h> # define flood memset #else -static void flood (__ptr_t, int, __malloc_size_t); +static void flood (__ptr_t, int, size_t); static void flood (ptr, val, size) __ptr_t ptr; int val; - __malloc_size_t size; + size_t size; { char *cp = ptr; while (size--) @@ -202,7 +201,7 @@ freehook (__ptr_t ptr, const __ptr_t caller) } static __ptr_t -mallochook (__malloc_size_t size, const __ptr_t caller) +mallochook (size_t size, const __ptr_t caller) { struct hdr *hdr; @@ -235,11 +234,11 @@ mallochook (__malloc_size_t size, const __ptr_t caller) } static __ptr_t -memalignhook (__malloc_size_t alignment, __malloc_size_t size, +memalignhook (size_t alignment, size_t size, const __ptr_t caller) { struct hdr *hdr; - __malloc_size_t slop; + size_t slop; char *block; if (pedantic) @@ -274,7 +273,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size, } static __ptr_t -reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller) +reallochook (__ptr_t ptr, size_t size, const __ptr_t caller) { if (size == 0) { @@ -283,7 +282,7 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller) } struct hdr *hdr; - __malloc_size_t osize; + size_t osize; if (pedantic) mcheck_check_all (); diff --git a/malloc/memusagestat.c b/malloc/memusagestat.c index f561e0dbbc..daeba1dc0a 100644 --- a/malloc/memusagestat.c +++ b/malloc/memusagestat.c @@ -52,12 +52,15 @@ /* Definitions of arguments for argp functions. */ static const struct argp_option options[] = { - { "output", 'o', "FILE", 0, N_("Name output file") }, - { "string", 's', "STRING", 0, N_("Title string used in output graphic") }, - { "time", 't', NULL, 0, N_("Generate output linear to time (default is linear to number of function calls)") }, + { "output", 'o', N_("FILE"), 0, N_("Name output file") }, + { "string", 's', N_("STRING"), 0, N_("Title string used in output graphic") }, + { "time", 't', NULL, 0, N_("\ +Generate output linear to time (default is linear to number of function calls)\ +") }, { "total", 'T', NULL, 0, N_("Also draw graph for total memory consumption") }, - { "x-size", 'x', "VALUE", 0, N_("Make output graphic VALUE pixels wide") }, + { "x-size", 'x', N_("VALUE"), 0, + N_("Make output graphic VALUE pixels wide") }, { "y-size", 'y', "VALUE", 0, N_("Make output graphic VALUE pixels high") }, { NULL, 0, NULL, 0, NULL } }; @@ -319,17 +322,26 @@ main (int argc, char *argv[]) for (line = 1; line <= 3; ++line) { - cnt = ((ysize - 40) * (maxsize_heap / 4 * line / heap_scale)) / - (maxsize_heap / heap_scale); - gdImageDashedLine (im_out, 40, ysize - 20 - cnt, xsize - 40, - ysize - 20 - cnt, red); - snprintf (buf, sizeof (buf), heap_format, maxsize_heap / 4 * line / - heap_scale); - gdImageString (im_out, gdFontSmall, 39 - strlen (buf) * 6, - ysize - 26 - cnt, (unsigned char *) buf, red); - - cnt2 = ((ysize - 40) * (maxsize_stack / 4 * line / stack_scale)) / - (maxsize_stack / stack_scale); + if (maxsize_heap > 0) + { + cnt = (((ysize - 40) * (maxsize_heap / 4 * line / heap_scale)) + / (maxsize_heap / heap_scale)); + gdImageDashedLine (im_out, 40, ysize - 20 - cnt, xsize - 40, + ysize - 20 - cnt, red); + snprintf (buf, sizeof (buf), heap_format, + maxsize_heap / 4 * line / heap_scale); + gdImageString (im_out, gdFontSmall, 39 - strlen (buf) * 6, + ysize - 26 - cnt, (unsigned char *) buf, red); + } + else + cnt = 0; + + if (maxsize_stack > 0) + cnt2 = (((ysize - 40) * (maxsize_stack / 4 * line / stack_scale)) + / (maxsize_stack / stack_scale)); + else + cnt2 = 0; + if (cnt != cnt2) gdImageDashedLine (im_out, 40, ysize - 20 - cnt2, xsize - 40, ysize - 20 - cnt2, green); @@ -372,7 +384,7 @@ main (int argc, char *argv[]) ysize - 14, yellow); previously = now; - if (also_total) + if (also_total && maxsize_heap > 0) { size_t new3; @@ -386,21 +398,27 @@ main (int argc, char *argv[]) last_total = new3; } - // assert (entry.heap <= maxsize_heap); - new[0] = (ysize - 20) - ((((unsigned long long int) (ysize - 40)) - * entry.heap) / maxsize_heap); - gdImageLine (im_out, 40 + ((xsize - 80) * (cnt - 1)) / total, - last_heap, 40 + ((xsize - 80) * cnt) / total, new[0], - red); - last_heap = new[0]; - - // assert (entry.stack <= maxsize_stack); - new[1] = (ysize - 20) - ((((unsigned long long int) (ysize - 40)) - * entry.stack) / maxsize_stack); - gdImageLine (im_out, 40 + ((xsize - 80) * (cnt - 1)) / total, - last_stack, 40 + ((xsize - 80) * cnt) / total, new[1], - green); - last_stack = new[1]; + if (maxsize_heap > 0) + { + new[0] = ((ysize - 20) + - ((((unsigned long long int) (ysize - 40)) + * entry.heap) / maxsize_heap)); + gdImageLine (im_out, 40 + ((xsize - 80) * (cnt - 1)) / total, + last_heap, 40 + ((xsize - 80) * cnt) / total, + new[0], red); + last_heap = new[0]; + } + + if (maxsize_stack > 0) + { + new[1] = ((ysize - 20) + - ((((unsigned long long int) (ysize - 40)) + * entry.stack) / maxsize_stack)); + gdImageLine (im_out, 40 + ((xsize - 80) * (cnt - 1)) / total, + last_stack, 40 + ((xsize - 80) * cnt) / total, + new[1], green); + last_stack = new[1]; + } } cnt = 0; @@ -448,7 +466,7 @@ main (int argc, char *argv[]) next_tick += MAX (1, total / 20); } - if (also_total) + if (also_total && maxsize_heap > 0) { size_t new3; @@ -459,16 +477,24 @@ main (int argc, char *argv[]) last_total = new3; } - new[0] = (ysize - 20) - ((((unsigned long long int) (ysize - 40)) - * entry.heap) / maxsize_heap); - gdImageLine (im_out, last_xpos, last_heap, xpos, new[0], red); - last_heap = new[0]; + if (maxsize_heap > 0) + { + new[0] = ((ysize - 20) + - ((((unsigned long long int) (ysize - 40)) + * entry.heap) / maxsize_heap)); + gdImageLine (im_out, last_xpos, last_heap, xpos, new[0], red); + last_heap = new[0]; + } - // assert (entry.stack <= maxsize_stack); - new[1] = (ysize - 20) - ((((unsigned long long int) (ysize - 40)) - * entry.stack) / maxsize_stack); - gdImageLine (im_out, last_xpos, last_stack, xpos, new[1], green); - last_stack = new[1]; + if (maxsize_stack > 0) + { + new[1] = ((ysize - 20) + - ((((unsigned long long int) (ysize - 40)) + * entry.stack) / maxsize_stack)); + gdImageLine (im_out, last_xpos, last_stack, xpos, new[1], + green); + last_stack = new[1]; + } last_xpos = xpos; } diff --git a/malloc/morecore.c b/malloc/morecore.c index 3b19406347..0a644c36ad 100644 --- a/malloc/morecore.c +++ b/malloc/morecore.c @@ -30,7 +30,7 @@ #include <stddef.h> #include <stdlib.h> -extern __malloc_ptr_t __sbrk (ptrdiff_t increment) __THROW; +extern void *__sbrk (ptrdiff_t increment) __THROW; libc_hidden_proto (__sbrk) #endif @@ -41,12 +41,11 @@ libc_hidden_proto (__sbrk) /* Allocate INCREMENT more bytes of data space, and return the start of data space, or NULL on errors. If INCREMENT is negative, shrink data space. */ -__malloc_ptr_t -__default_morecore (increment) - __malloc_ptrdiff_t increment; +void * +__default_morecore (ptrdiff_t increment) { - __malloc_ptr_t result = (__malloc_ptr_t) __sbrk (increment); - if (result == (__malloc_ptr_t) -1) + void *result = (void *) __sbrk (increment); + if (result == (void *) -1) return NULL; return result; } diff --git a/malloc/mtrace.c b/malloc/mtrace.c index e9ccfa299d..62867b1182 100644 --- a/malloc/mtrace.c +++ b/malloc/mtrace.c @@ -58,11 +58,10 @@ __ptr_t mallwatch; /* Old hook values. */ static void (*tr_old_free_hook) (__ptr_t ptr, const __ptr_t); -static __ptr_t (*tr_old_malloc_hook) (__malloc_size_t size, const __ptr_t); -static __ptr_t (*tr_old_realloc_hook) (__ptr_t ptr, __malloc_size_t size, +static __ptr_t (*tr_old_malloc_hook) (size_t size, const __ptr_t); +static __ptr_t (*tr_old_realloc_hook) (__ptr_t ptr, size_t size, const __ptr_t); -static __ptr_t (*tr_old_memalign_hook) (__malloc_size_t __alignment, - __malloc_size_t __size, +static __ptr_t (*tr_old_memalign_hook) (size_t __alignment, size_t __size, const __ptr_t); /* This function is called when the block being alloc'd, realloc'd, or @@ -160,10 +159,10 @@ tr_freehook (ptr, caller) __libc_lock_unlock (lock); } -static __ptr_t tr_mallochook (__malloc_size_t, const __ptr_t) __THROW; +static __ptr_t tr_mallochook (size_t, const __ptr_t) __THROW; static __ptr_t tr_mallochook (size, caller) - __malloc_size_t size; + size_t size; const __ptr_t caller; { __ptr_t hdr; @@ -190,12 +189,12 @@ tr_mallochook (size, caller) return hdr; } -static __ptr_t tr_reallochook (__ptr_t, __malloc_size_t, const __ptr_t) +static __ptr_t tr_reallochook (__ptr_t, size_t, const __ptr_t) __THROW; static __ptr_t tr_reallochook (ptr, size, caller) __ptr_t ptr; - __malloc_size_t size; + size_t size; const __ptr_t caller; { __ptr_t hdr; @@ -243,11 +242,11 @@ tr_reallochook (ptr, size, caller) return hdr; } -static __ptr_t tr_memalignhook (__malloc_size_t, __malloc_size_t, +static __ptr_t tr_memalignhook (size_t, size_t, const __ptr_t) __THROW; static __ptr_t tr_memalignhook (alignment, size, caller) - __malloc_size_t alignment, size; + size_t alignment, size; const __ptr_t caller; { __ptr_t hdr; |