summaryrefslogtreecommitdiffstats
path: root/contrib/gnu-sort/lib/xmalloc.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2004-08-12 05:37:46 +0000
committertjr <tjr@FreeBSD.org>2004-08-12 05:37:46 +0000
commita20bc469ca40f5ef5bfdb2a722a731356c0b3c88 (patch)
tree620b3c07b0df596abf6d4b574472fb8ac785ecfa /contrib/gnu-sort/lib/xmalloc.c
parentc024cb1aa77683262f434d4fe6c2fea366a53162 (diff)
downloadFreeBSD-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.c44
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;
}
OpenPOWER on IntegriCloud