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
commitfa48dfef0cb1aca5ea3aeb98ace78860f6b469dd (patch)
tree23c9b7d281c9e44de15af3669e2f834a4091648c /contrib/gnu-sort/lib/xmalloc.c
parent6a255763d78e0631ac9bd2df5f8e4f662a5d17a7 (diff)
parenta20bc469ca40f5ef5bfdb2a722a731356c0b3c88 (diff)
downloadFreeBSD-src-fa48dfef0cb1aca5ea3aeb98ace78860f6b469dd.zip
FreeBSD-src-fa48dfef0cb1aca5ea3aeb98ace78860f6b469dd.tar.gz
This commit was generated by cvs2svn to compensate for changes in r133543,
which included commits to RCS files with non-trunk default branches.
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