diff options
author | tjr <tjr@FreeBSD.org> | 2004-08-12 05:37:46 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2004-08-12 05:37:46 +0000 |
commit | a20bc469ca40f5ef5bfdb2a722a731356c0b3c88 (patch) | |
tree | 620b3c07b0df596abf6d4b574472fb8ac785ecfa /contrib/gnu-sort/lib/xmalloc.c | |
parent | c024cb1aa77683262f434d4fe6c2fea366a53162 (diff) | |
download | FreeBSD-src-a20bc469ca40f5ef5bfdb2a722a731356c0b3c88.zip FreeBSD-src-a20bc469ca40f5ef5bfdb2a722a731356c0b3c88.tar.gz |
Import of GNU sort from coreutils CVS (trimmed)
Diffstat (limited to 'contrib/gnu-sort/lib/xmalloc.c')
-rw-r--r-- | contrib/gnu-sort/lib/xmalloc.c | 44 |
1 files changed, 5 insertions, 39 deletions
diff --git a/contrib/gnu-sort/lib/xmalloc.c b/contrib/gnu-sort/lib/xmalloc.c index 181006b..9b7a948 100644 --- a/contrib/gnu-sort/lib/xmalloc.c +++ b/contrib/gnu-sort/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. + Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 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 @@ -26,44 +26,10 @@ #include <stdlib.h> #include <string.h> -#include "gettext.h" -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - -#include "error.h" -#include "exitfail.h" - #ifndef SIZE_MAX # 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; - -/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message - before exiting when memory is exhausted. Goes through gettext. */ -char const xalloc_msg_memory_exhausted[] = N_("memory exhausted"); - -void -xalloc_die (void) -{ - if (xalloc_fail_func) - (*xalloc_fail_func) (); - error (exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted)); - /* The `noreturn' cannot be given to error, since it may return if - its first argument is 0. To help compilers understand the - xalloc_die does terminate, call abort. */ - abort (); -} - /* Allocate an array of N objects, each with S bytes of memory, dynamically, with error checking. S must be nonzero. */ @@ -71,7 +37,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 +62,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 +205,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; } |