1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Remove MALLOC_FAILURE_ACTION use in malloc

This commit is contained in:
Ulrich Drepper
2011-09-10 22:12:38 -04:00
parent 02d46fc4b9
commit 8e58439c92
3 changed files with 11 additions and 23 deletions

View File

@ -1,5 +1,8 @@
2011-09-10 Ulrich Drepper <drepper@gmail.com> 2011-09-10 Ulrich Drepper <drepper@gmail.com>
* malloc/malloc.c: Replace MALLOC_FAILURE_ACTION with use of __set_errno.
* malloc/hooks.c: Likewise.
* malloc/arena.c (ptmalloc_init_minimal): Removed. Initialize all * malloc/arena.c (ptmalloc_init_minimal): Removed. Initialize all
variables statically. variables statically.
(narenas): Initialize. (narenas): Initialize.

View File

@ -204,7 +204,7 @@ top_check(void)
new_brk = (char*)(MORECORE (sbrk_size)); new_brk = (char*)(MORECORE (sbrk_size));
if (new_brk == (char*)(MORECORE_FAILURE)) if (new_brk == (char*)(MORECORE_FAILURE))
{ {
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return -1; return -1;
} }
/* Call the `morecore' hook if necessary. */ /* Call the `morecore' hook if necessary. */
@ -225,7 +225,7 @@ malloc_check(size_t sz, const void *caller)
void *victim; void *victim;
if (sz+1 == 0) { if (sz+1 == 0) {
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return NULL; return NULL;
} }
@ -266,7 +266,7 @@ realloc_check(void* oldmem, size_t bytes, const void *caller)
unsigned char *magic_p; unsigned char *magic_p;
if (bytes+1 == 0) { if (bytes+1 == 0) {
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return NULL; return NULL;
} }
if (oldmem == 0) return malloc_check(bytes, NULL); if (oldmem == 0) return malloc_check(bytes, NULL);
@ -334,7 +334,7 @@ memalign_check(size_t alignment, size_t bytes, const void *caller)
if (alignment < MINSIZE) alignment = MINSIZE; if (alignment < MINSIZE) alignment = MINSIZE;
if (bytes+1 == 0) { if (bytes+1 == 0) {
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return NULL; return NULL;
} }
(void)mutex_lock(&main_arena.mutex); (void)mutex_lock(&main_arena.mutex);

View File

@ -184,7 +184,6 @@
USE_MALLOC_LOCK NOT defined USE_MALLOC_LOCK NOT defined
MALLOC_DEBUG NOT defined MALLOC_DEBUG NOT defined
REALLOC_ZERO_BYTES_FREES 1 REALLOC_ZERO_BYTES_FREES 1
MALLOC_FAILURE_ACTION errno = ENOMEM
TRIM_FASTBINS 0 TRIM_FASTBINS 0
Options for customizing MORECORE: Options for customizing MORECORE:
@ -233,7 +232,7 @@ extern "C" {
#include <unistd.h> #include <unistd.h>
#include <stdio.h> /* needed for malloc_stats */ #include <stdio.h> /* needed for malloc_stats */
#include <errno.h> /* needed for optional MALLOC_FAILURE_ACTION */ #include <errno.h>
/* For uintptr_t. */ /* For uintptr_t. */
#include <stdint.h> #include <stdint.h>
@ -478,20 +477,6 @@ void *(*__morecore)(ptrdiff_t) = __default_morecore;
({ __typeof (val) _v; asm ("" : "=r" (_v) : "0" (val)); _v; }) ({ __typeof (val) _v; asm ("" : "=r" (_v) : "0" (val)); _v; })
/*
MALLOC_FAILURE_ACTION is the action to take before "return 0" when
malloc fails to be able to return memory, either because memory is
exhausted or because of illegal arguments.
By default, sets errno if running on STD_C platform, else does nothing.
*/
#ifndef MALLOC_FAILURE_ACTION
#define MALLOC_FAILURE_ACTION \
errno = ENOMEM;
#endif
/* /*
MORECORE-related declarations. By default, rely on sbrk MORECORE-related declarations. By default, rely on sbrk
*/ */
@ -1401,7 +1386,7 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#define checked_request2size(req, sz) \ #define checked_request2size(req, sz) \
if (REQUEST_OUT_OF_RANGE(req)) { \ if (REQUEST_OUT_OF_RANGE(req)) { \
MALLOC_FAILURE_ACTION; \ __set_errno (ENOMEM); \
return 0; \ return 0; \
} \ } \
(sz) = request2size(req); (sz) = request2size(req);
@ -2774,7 +2759,7 @@ static void* sYSMALLOc(INTERNAL_SIZE_T nb, mstate av)
} }
/* catch all failure paths */ /* catch all failure paths */
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return 0; return 0;
} }
@ -3247,7 +3232,7 @@ public_cALLOc(size_t n, size_t elem_size)
(((INTERNAL_SIZE_T) 1) << (8 * sizeof (INTERNAL_SIZE_T) / 2)) (((INTERNAL_SIZE_T) 1) << (8 * sizeof (INTERNAL_SIZE_T) / 2))
if (__builtin_expect ((n | elem_size) >= HALF_INTERNAL_SIZE_T, 0)) { if (__builtin_expect ((n | elem_size) >= HALF_INTERNAL_SIZE_T, 0)) {
if (elem_size != 0 && bytes / elem_size != n) { if (elem_size != 0 && bytes / elem_size != n) {
MALLOC_FAILURE_ACTION; __set_errno (ENOMEM);
return 0; return 0;
} }
} }