aboutsummaryrefslogtreecommitdiff
path: root/malloc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-21 17:12:43 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-21 17:12:43 +0000
commit6c6bb0558c6adebd450cc7037305f89e746597b5 (patch)
tree062811cf59fbbb94bab8d7cc02894772cbe2d412 /malloc
parent425966d0707380015fcbcbc9b206500761ab8505 (diff)
downloadglibc-6c6bb0558c6adebd450cc7037305f89e746597b5.zip
glibc-6c6bb0558c6adebd450cc7037305f89e746597b5.tar.gz
glibc-6c6bb0558c6adebd450cc7037305f89e746597b5.tar.bz2
Update.
* string/bits/string2.h: Remove strnlen optimization here. * sysdeps/i386/i486/bits/string.h: Add it here. 2001-08-21 Wolfram Gloger <wg@malloc.de> * malloc/malloc.c: Make access to ..._hook pointers thread-safe. 2001-08-21 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'malloc')
-rw-r--r--malloc/malloc.c43
1 files changed, 28 insertions, 15 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 92de6e4..6722ac4 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2788,13 +2788,15 @@ Void_t* mALLOc(bytes) size_t bytes;
mchunkptr victim;
#if defined _LIBC || defined MALLOC_HOOKS
- if (__malloc_hook != NULL) {
+ __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, __const __malloc_ptr_t)) =
+ __malloc_hook;
+ if (hook != NULL) {
Void_t* result;
#if defined __GNUC__ && __GNUC__ >= 2
- result = (*__malloc_hook)(bytes, RETURN_ADDRESS (0));
+ result = (*hook)(bytes, RETURN_ADDRESS (0));
#else
- result = (*__malloc_hook)(bytes, NULL);
+ result = (*hook)(bytes, NULL);
#endif
return result;
}
@@ -3111,11 +3113,14 @@ void fREe(mem) Void_t* mem;
mchunkptr p; /* chunk corresponding to mem */
#if defined _LIBC || defined MALLOC_HOOKS
- if (__free_hook != NULL) {
+ void (*hook) __MALLOC_PMT ((__malloc_ptr_t, __const __malloc_ptr_t)) =
+ __free_hook;
+
+ if (hook != NULL) {
#if defined __GNUC__ && __GNUC__ >= 2
- (*__free_hook)(mem, RETURN_ADDRESS (0));
+ (*hook)(mem, RETURN_ADDRESS (0));
#else
- (*__free_hook)(mem, NULL);
+ (*hook)(mem, NULL);
#endif
return;
}
@@ -3314,13 +3319,16 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
mchunkptr newp; /* chunk to return */
#if defined _LIBC || defined MALLOC_HOOKS
- if (__realloc_hook != NULL) {
+ __malloc_ptr_t (*hook) __MALLOC_PMT ((__malloc_ptr_t, size_t,
+ __const __malloc_ptr_t)) =
+ __realloc_hook;
+ if (hook != NULL) {
Void_t* result;
#if defined __GNUC__ && __GNUC__ >= 2
- result = (*__realloc_hook)(oldmem, bytes, RETURN_ADDRESS (0));
+ result = (*hook)(oldmem, bytes, RETURN_ADDRESS (0));
#else
- result = (*__realloc_hook)(oldmem, bytes, NULL);
+ result = (*hook)(oldmem, bytes, NULL);
#endif
return result;
}
@@ -3596,13 +3604,16 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; size_t bytes;
mchunkptr p;
#if defined _LIBC || defined MALLOC_HOOKS
- if (__memalign_hook != NULL) {
+ __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
+ __const __malloc_ptr_t)) =
+ __memalign_hook;
+ if (hook != NULL) {
Void_t* result;
#if defined __GNUC__ && __GNUC__ >= 2
- result = (*__memalign_hook)(alignment, bytes, RETURN_ADDRESS (0));
+ result = (*hook)(alignment, bytes, RETURN_ADDRESS (0));
#else
- result = (*__memalign_hook)(alignment, bytes, NULL);
+ result = (*hook)(alignment, bytes, NULL);
#endif
return result;
}
@@ -3788,12 +3799,14 @@ Void_t* cALLOc(n, elem_size) size_t n; size_t elem_size;
Void_t* mem;
#if defined _LIBC || defined MALLOC_HOOKS
- if (__malloc_hook != NULL) {
+ __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, __const __malloc_ptr_t)) =
+ __malloc_hook;
+ if (hook != NULL) {
sz = n * elem_size;
#if defined __GNUC__ && __GNUC__ >= 2
- mem = (*__malloc_hook)(sz, RETURN_ADDRESS (0));
+ mem = (*hook)(sz, RETURN_ADDRESS (0));
#else
- mem = (*__malloc_hook)(sz, NULL);
+ mem = (*hook)(sz, NULL);
#endif
if(mem == 0)
return 0;