* cygmalloc.h (__set_ENOMEM): Declare.
(MALLOC_FAILURE_ACTION): Call __set_ENOMEM. * malloc_wrapper.cc (malloc) Remove setting errno here. (realloc): Ditto. (calloc): Ditto. (memalign): Ditto. (valloc): Ditto. (posix_memalign): Save and restore errno.
This commit is contained in:
parent
d4c6243390
commit
0bce6570f0
|
@ -1,3 +1,15 @@
|
|||
2007-02-08 Christopher Faylor <me@cgf.cx>
|
||||
Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygmalloc.h (__set_ENOMEM): Declare.
|
||||
(MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
|
||||
* malloc_wrapper.cc (malloc) Remove setting errno here.
|
||||
(realloc): Ditto.
|
||||
(calloc): Ditto.
|
||||
(memalign): Ditto.
|
||||
(valloc): Ditto.
|
||||
(posix_memalign): Save and restore errno.
|
||||
|
||||
2007-02-07 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
|
||||
|
|
|
@ -23,7 +23,8 @@ int dlmallopt (int p, int v) __attribute__ ((regparm (2)));
|
|||
void dlmalloc_stats ();
|
||||
|
||||
#ifndef __INSIDE_CYGWIN__
|
||||
# define MALLOC_FAILURE_ACTION
|
||||
extern "C" void __set_ENOMEM ();
|
||||
# define MALLOC_FAILURE_ACTION __set_ENOMEM ()
|
||||
# define USE_DL_PREFIX 1
|
||||
#else
|
||||
# define __malloc_lock() mallock.acquire ()
|
||||
|
|
|
@ -70,8 +70,6 @@ malloc (size_t size)
|
|||
__malloc_unlock ();
|
||||
}
|
||||
malloc_printf ("(%d) = %x, called by %p", size, res, __builtin_return_address (0));
|
||||
if (!res)
|
||||
set_errno (ENOMEM);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -88,8 +86,6 @@ realloc (void *p, size_t size)
|
|||
__malloc_unlock ();
|
||||
}
|
||||
malloc_printf ("(%x, %d) = %x, called by %x", p, size, res, __builtin_return_address (0));
|
||||
if (!res)
|
||||
set_errno (ENOMEM);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -106,14 +102,14 @@ calloc (size_t nmemb, size_t size)
|
|||
__malloc_unlock ();
|
||||
}
|
||||
malloc_printf ("(%d, %d) = %x, called by %x", nmemb, size, res, __builtin_return_address (0));
|
||||
if (!res)
|
||||
set_errno (ENOMEM);
|
||||
return res;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
posix_memalign (void **memptr, size_t alignment, size_t bytes)
|
||||
{
|
||||
save_errno save;
|
||||
|
||||
void *res;
|
||||
if (!use_internal_malloc)
|
||||
return ENOSYS;
|
||||
|
@ -143,8 +139,6 @@ memalign (size_t alignment, size_t bytes)
|
|||
__malloc_lock ();
|
||||
res = dlmemalign (alignment, bytes);
|
||||
__malloc_unlock ();
|
||||
if (!res)
|
||||
set_errno (ENOMEM);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
@ -164,8 +158,6 @@ valloc (size_t bytes)
|
|||
__malloc_lock ();
|
||||
res = dlvalloc (bytes);
|
||||
__malloc_unlock ();
|
||||
if (!res)
|
||||
set_errno (ENOMEM);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
@ -299,3 +291,9 @@ malloc_init ()
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
__set_ENOMEM ()
|
||||
{
|
||||
set_errno (ENOMEM);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue