>From 77b003848b85f83537b3f618cb0a810447329500 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 15 May 2014 12:37:48 -0700 Subject: [PATCH] Port to systems where malloc (0) and/or realloc(P, 0) returns NULL. * gawkmisc.c (xmalloc): * xalloc.h (realloc): Do not fail if malloc(0) or realloc(P, 0) returns NULL. Fail only when the allocator returns null when attempting to allocate a nonzero number of bytes. --- ChangeLog | 9 +++++++++ gawkmisc.c | 5 +++-- xalloc.h | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45125c1..20dac99 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-05-15 Paul Eggert + + Port to systems where malloc (0) and/or realloc(P, 0) returns NULL. + * gawkmisc.c (xmalloc): + * xalloc.h (realloc): + Do not fail if malloc(0) or realloc(P, 0) returns NULL. + Fail only when the allocator returns null when attempting to + allocate a nonzero number of bytes. + 2014-05-14 Arnold D. Robbins * custom.h (_GL_PURE): Move definition to here. Sigh. diff --git a/gawkmisc.c b/gawkmisc.c index a729d88..fff5cc5 100644 --- a/gawkmisc.c +++ b/gawkmisc.c @@ -51,7 +51,8 @@ extern pointer xmalloc(size_t bytes); /* get rid of gcc warning */ pointer xmalloc(size_t bytes) { - pointer p; - emalloc(p, pointer, bytes, "xmalloc"); + pointer p = malloc(bytes); + if (!p && bytes) + xalloc_die (); return p; } diff --git a/xalloc.h b/xalloc.h index 0d169cf..5ee4516 100644 --- a/xalloc.h +++ b/xalloc.h @@ -156,7 +156,7 @@ void * xrealloc(void *p, size_t size) { void *new_p = realloc(p, size); - if (new_p == 0) + if (!new_p && size) xalloc_die (); return new_p; -- 1.9.0