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:
@ -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.
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user