From: Paul Eggert Date: Tue, 1 Jun 2004 03:49:45 +0000 (+0000) Subject: Remove dependency of hash and xalloc modules on the malloc and realloc X-Git-Tag: cvs-readonly~4112 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=8551f7edb3d6c2612cd1831858cb16ea392de4e4;p=gnulib.git Remove dependency of hash and xalloc modules on the malloc and realloc modules. --- diff --git a/ChangeLog b/ChangeLog index 2c7c0aea8..ed3b455f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-05-30 Paul Eggert + * modules/hash (Depends-on): Remove malloc, realloc. + * modules/xalloc (Depends-on): Likewise. + * README: Mention that the 'free' module works around the problem with 'free (0)'. Mention LIA-1 and C99. diff --git a/lib/ChangeLog b/lib/ChangeLog index a894cc13c..9752f1e76 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,10 @@ +2004-05-30 Paul Eggert + + * xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these + macros to be defined. + (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if + the allocator returns NULL because the requested size is zero. + 2004-05-20 Paul Eggert * malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this diff --git a/lib/xmalloc.c b/lib/xmalloc.c index 181006b43..cc7501974 100644 --- a/lib/xmalloc.c +++ b/lib/xmalloc.c @@ -1,7 +1,7 @@ /* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2003, - 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -37,14 +37,6 @@ # define SIZE_MAX ((size_t) -1) #endif -#ifndef HAVE_MALLOC -"you must run the autoconf test for a GNU libc compatible malloc" -#endif - -#ifndef HAVE_REALLOC -"you must run the autoconf test for a GNU libc compatible realloc" -#endif - /* If non NULL, call this function when memory is exhausted. */ void (*xalloc_fail_func) (void) = 0; @@ -71,7 +63,7 @@ static inline void * xnmalloc_inline (size_t n, size_t s) { void *p; - if (xalloc_oversized (n, s) || ! (p = malloc (n * s))) + if (xalloc_oversized (n, s) || (! (p = malloc (n * s)) && n != 0)) xalloc_die (); return p; } @@ -96,7 +88,7 @@ xmalloc (size_t n) static inline void * xnrealloc_inline (void *p, size_t n, size_t s) { - if (xalloc_oversized (n, s) || ! (p = realloc (p, n * s))) + if (xalloc_oversized (n, s) || (! (p = realloc (p, n * s)) && n != 0)) xalloc_die (); return p; } @@ -239,7 +231,7 @@ xcalloc (size_t n, size_t s) void *p; /* Test for overflow, since some calloc implementations don't have proper overflow checks. */ - if (xalloc_oversized (n, s) || ! (p = calloc (n, s))) + if (xalloc_oversized (n, s) || (! (p = calloc (n, s)) && n != 0)) xalloc_die (); return p; } diff --git a/m4/ChangeLog b/m4/ChangeLog index 02d81a276..909ba9899 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,8 @@ +2004-05-30 Paul Eggert + + * xalloc.m4 (gl_PREREQ_XMALLOC): Do not require AC_FUNC_MALLOC + or AC_FUNC_REALLOC. + 2004-05-20 Andreas Schwab * free.m4: Replace free if it not known to work, not the other diff --git a/m4/xalloc.m4 b/m4/xalloc.m4 index f3d379007..4d9383509 100644 --- a/m4/xalloc.m4 +++ b/m4/xalloc.m4 @@ -1,4 +1,4 @@ -# xalloc.m4 serial 8 +# xalloc.m4 serial 9 dnl Copyright (C) 2002-2004 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General @@ -21,8 +21,6 @@ AC_DEFUN([gl_PREREQ_XALLOC], [ # Prerequisites of lib/xmalloc.c. AC_DEFUN([gl_PREREQ_XMALLOC], [ AC_REQUIRE([AC_C_INLINE]) - AC_REQUIRE([AC_FUNC_MALLOC]) - AC_REQUIRE([AC_FUNC_REALLOC]) : ]) diff --git a/modules/hash b/modules/hash index 6f353dc23..608100453 100644 --- a/modules/hash +++ b/modules/hash @@ -7,8 +7,6 @@ lib/hash.c m4/hash.m4 Depends-on: -malloc -realloc stdbool configure.ac: diff --git a/modules/xalloc b/modules/xalloc index e92d5332f..5d93aa398 100644 --- a/modules/xalloc +++ b/modules/xalloc @@ -8,8 +8,6 @@ lib/xstrdup.c m4/xalloc.m4 Depends-on: -malloc -realloc error gettext exitfail