Mercurial > hg > octave-lojdl > gnulib-hg
changeset 14538:cd02b552d886
stdlib: let modules use system malloc, realloc
* lib/stdlib.in.h (malloc, realloc): Don't #define or add warnings
if !_GL_USE_STDLIB_ALLOC.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Fri, 08 Apr 2011 11:06:03 -0700 |
parents | 10946c7debf8 |
children | 148e9e02c46b |
files | ChangeLog lib/stdlib.in.h |
diffstat | 2 files changed, 32 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-04-08 Paul Eggert <eggert@cs.ucla.edu> + stdlib: let modules use system malloc, realloc + * lib/stdlib.in.h (malloc, realloc): Don't #define or add warnings + if !_GL_USE_STDLIB_ALLOC. + careadlinkat: rename members to avoid problem * lib/allocator.h (struct allocator): Rename members from malloc/realloc to allocate/reallocate, to avoid problems if malloc
--- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -255,23 +255,29 @@ # endif #endif -#if @GNULIB_MALLOC_POSIX@ -# if @REPLACE_MALLOC@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef malloc -# define malloc rpl_malloc -# endif +/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not + rely on GNU or POSIX semantics for malloc and realloc (for example, + by never specifying a zero size), so it does not need malloc or + realloc to be redefined. */ +#if !_GL_USE_STDLIB_ALLOC +# if @GNULIB_MALLOC_POSIX@ +# if @REPLACE_MALLOC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef malloc +# define malloc rpl_malloc +# endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); -# else +# else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); -# endif +# endif _GL_CXXALIASWARN (malloc); -#elif defined GNULIB_POSIXCHECK -# undef malloc +# elif defined GNULIB_POSIXCHECK +# undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); +# endif #endif /* Convert a multibyte character to a wide character. */ @@ -529,23 +535,25 @@ #endif -#if @GNULIB_REALLOC_POSIX@ -# if @REPLACE_REALLOC@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef realloc -# define realloc rpl_realloc -# endif +#if !_GL_USE_STDLIB_ALLOC +# if @GNULIB_REALLOC_POSIX@ +# if @REPLACE_REALLOC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef realloc +# define realloc rpl_realloc +# endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); -# else +# else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); -# endif +# endif _GL_CXXALIASWARN (realloc); -#elif defined GNULIB_POSIXCHECK -# undef realloc +# elif defined GNULIB_POSIXCHECK +# undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); +# endif #endif #if @GNULIB_REALPATH@