diff options
| author | Akinori MUSHA <knu@FreeBSD.org> | 2001-12-29 08:10:14 +0000 |
|---|---|---|
| committer | Akinori MUSHA <knu@FreeBSD.org> | 2001-12-29 08:10:14 +0000 |
| commit | 2316c86bd03354712fc909b1012e4f1ad5e1e191 (patch) | |
| tree | 2d5425b9e53ab0986dd5ac13c9966c3ec5ab0617 /lib/libc/stdlib/malloc.c | |
| parent | e4db96e3b8a406b93618c5c1fd8be40b1e986457 (diff) | |
Notes
Diffstat (limited to 'lib/libc/stdlib/malloc.c')
| -rw-r--r-- | lib/libc/stdlib/malloc.c | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c index 6482b4570122..bf2b1329a88a 100644 --- a/lib/libc/stdlib/malloc.c +++ b/lib/libc/stdlib/malloc.c @@ -458,7 +458,7 @@ malloc_init () page_dir = (struct pginfo **) MMAP(malloc_pagesize); if (page_dir == (struct pginfo **) -1) - wrterror("mmap(2) failed, check limits.\n"); + wrterror("mmap(2) failed, check limits\n"); /* * We need a maximum of malloc_pageshift buckets, steal these from the @@ -739,12 +739,12 @@ irealloc(void *ptr, size_t size) index = ptr2index(ptr); if (index < malloc_pageshift) { - wrtwarning("junk pointer, too low to make sense.\n"); + wrtwarning("junk pointer, too low to make sense\n"); return 0; } if (index > last_index) { - wrtwarning("junk pointer, too high to make sense.\n"); + wrtwarning("junk pointer, too high to make sense\n"); return 0; } @@ -754,7 +754,7 @@ irealloc(void *ptr, size_t size) /* Check the pointer */ if ((u_long)ptr & malloc_pagemask) { - wrtwarning("modified (page-) pointer.\n"); + wrtwarning("modified (page-) pointer\n"); return 0; } @@ -772,7 +772,7 @@ irealloc(void *ptr, size_t size) /* Check the pointer for sane values */ if (((u_long)ptr & ((*mp)->size-1))) { - wrtwarning("modified (chunk-) pointer.\n"); + wrtwarning("modified (chunk-) pointer\n"); return 0; } @@ -781,7 +781,7 @@ irealloc(void *ptr, size_t size) /* Verify that it isn't a free chunk already */ if ((*mp)->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) { - wrtwarning("chunk is already free.\n"); + wrtwarning("chunk is already free\n"); return 0; } @@ -795,7 +795,7 @@ irealloc(void *ptr, size_t size) } } else { - wrtwarning("pointer to wrong page.\n"); + wrtwarning("pointer to wrong page\n"); return 0; } @@ -827,17 +827,17 @@ free_pages(void *ptr, u_long index, struct pginfo *info) void *tail; if (info == MALLOC_FREE) { - wrtwarning("page is already free.\n"); + wrtwarning("page is already free\n"); return; } if (info != MALLOC_FIRST) { - wrtwarning("pointer to wrong page.\n"); + wrtwarning("pointer to wrong page\n"); return; } if ((u_long)ptr & malloc_pagemask) { - wrtwarning("modified (page-) pointer.\n"); + wrtwarning("modified (page-) pointer\n"); return; } @@ -912,7 +912,7 @@ free_pages(void *ptr, u_long index, struct pginfo *info) pf = px; px = 0; } else { - wrterror("freelist is destroyed.\n"); + wrterror("freelist is destroyed\n"); } } @@ -959,12 +959,12 @@ free_bytes(void *ptr, u_long index, struct pginfo *info) i = ((u_long)ptr & malloc_pagemask) >> info->shift; if (((u_long)ptr & (info->size-1))) { - wrtwarning("modified (chunk-) pointer.\n"); + wrtwarning("modified (chunk-) pointer\n"); return; } if (info->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) { - wrtwarning("chunk is already free.\n"); + wrtwarning("chunk is already free\n"); return; } @@ -1021,7 +1021,7 @@ ifree(void *ptr) return; if (!malloc_started) { - wrtwarning("malloc() has never been called.\n"); + wrtwarning("malloc() has never been called\n"); return; } @@ -1032,12 +1032,12 @@ ifree(void *ptr) index = ptr2index(ptr); if (index < malloc_pageshift) { - wrtwarning("junk pointer, too low to make sense.\n"); + wrtwarning("junk pointer, too low to make sense\n"); return; } if (index > last_index) { - wrtwarning("junk pointer, too high to make sense.\n"); + wrtwarning("junk pointer, too high to make sense\n"); return; } @@ -1063,7 +1063,7 @@ malloc(size_t size) THREAD_LOCK(); malloc_func = " in malloc():"; if (malloc_active++) { - wrtwarning("recursive call.\n"); + wrtwarning("recursive call\n"); malloc_active--; THREAD_UNLOCK(); return (0); @@ -1078,7 +1078,7 @@ malloc(size_t size) malloc_active--; THREAD_UNLOCK(); if (malloc_xmalloc && !r) - wrterror("out of memory.\n"); + wrterror("out of memory\n"); return (r); } @@ -1088,8 +1088,9 @@ free(void *ptr) THREAD_LOCK(); malloc_func = " in free():"; if (malloc_active++) { - wrtwarning("recursive call.\n"); + wrtwarning("recursive call\n"); malloc_active--; + THREAD_UNLOCK(); return; } else { ifree(ptr); @@ -1103,17 +1104,19 @@ free(void *ptr) void * realloc(void *ptr, size_t size) { - register void *r; + void *r; + int err = 0; THREAD_LOCK(); malloc_func = " in realloc():"; if (malloc_active++) { - wrtwarning("recursive call.\n"); + wrtwarning("recursive call\n"); malloc_active--; + THREAD_UNLOCK(); return (0); } if (ptr && !malloc_started) { - wrtwarning("malloc() has never been called.\n"); + wrtwarning("malloc() has never been called\n"); ptr = 0; } if (!malloc_started) @@ -1123,14 +1126,16 @@ realloc(void *ptr, size_t size) r = 0; } else if (!ptr) { r = imalloc(size); + err = (r == NULL); } else { r = irealloc(ptr, size); + err = (r == NULL); } UTRACE(ptr, size, r); malloc_active--; THREAD_UNLOCK(); - if (malloc_xmalloc && !r) - wrterror("out of memory.\n"); + if (malloc_xmalloc && err) + wrterror("out of memory\n"); return (r); } |
