From 8ad3011df39aac9833be500a4c7df7c0186ea733 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 9 Aug 2004 18:44:46 +0000 Subject: [PATCH] Remove dependency of xalloc on error, etc. --- ChangeLog | 3 +++ lib/ChangeLog | 9 +++++++++ lib/Makefile.am | 1 + lib/userspec.c | 21 +++------------------ lib/xalloc.h | 16 +++------------- lib/xmalloc.c | 28 +--------------------------- 6 files changed, 20 insertions(+), 58 deletions(-) diff --git a/ChangeLog b/ChangeLog index c63cd60..ecb31b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-08-09 Paul Eggert + * src/csplit.c (xalloc_die): New function. + (main): Remove now-obsolete initialization of xalloc_fail_func. + * src/md5sum.c: Adjust to sha->sha1 renaming. 2004-08-07 Paul Eggert diff --git a/lib/ChangeLog b/lib/ChangeLog index 6b1bc02..c7a35ca 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,5 +1,14 @@ 2004-08-09 Paul Eggert + * xalloc-die.c: New files. + * xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove. + All uses removed. + * xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise. + Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c. + (_, N_, xalloc_die): Move to xalloc-die.c. + * userspec.c (parse_user_spaec): Use xstrdup rather than strdup, + so that we needn't mess with xalloc_msg_memory_exhausted. + * sha1.h (sha1_ctx): Renamed from sha_ctx. (sha1_init_ctx): Renamed from sha_init_ctx. (sha1_process_block): Renamed from sha_process_block. diff --git a/lib/Makefile.am b/lib/Makefile.am index 14fa776..ec6f464 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -122,6 +122,7 @@ libfetish_a_SOURCES = \ utimens.c utimens.h \ version-etc.c version-etc.h \ xalloc.h \ + xalloc-die.c \ xfts.c xfts.h \ xgetcwd.c xgetcwd.h \ xgethostname.c xgethostname.h \ diff --git a/lib/userspec.c b/lib/userspec.c index 820c710..6bf4089 100644 --- a/lib/userspec.c +++ b/lib/userspec.c @@ -277,25 +277,10 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid, if (error_msg == NULL) { if (u != NULL) - { - *username_arg = strdup (u); - if (*username_arg == NULL) - error_msg = xalloc_msg_memory_exhausted; - } + *username_arg = xstrdup (u); - if (groupname != NULL && error_msg == NULL) - { - *groupname_arg = strdup (groupname); - if (*groupname_arg == NULL) - { - if (*username_arg != NULL) - { - free (*username_arg); - *username_arg = NULL; - } - error_msg = xalloc_msg_memory_exhausted; - } - } + if (groupname != NULL) + *groupname_arg = xstrdup (groupname); } if (error_msg && dot) diff --git a/lib/xalloc.h b/lib/xalloc.h index 5985892..d81f2a6 100644 --- a/lib/xalloc.h +++ b/lib/xalloc.h @@ -38,19 +38,9 @@ extern "C" { # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) # endif - -/* If this pointer is non-zero, run the specified function upon each - allocation failure. It is initialized to zero. */ -extern void (*xalloc_fail_func) (void); - -/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this - message is output. It is translated via gettext. - Its value is "memory exhausted". */ -extern char const xalloc_msg_memory_exhausted[]; - -/* This function is always triggered when memory is exhausted. It is - in charge of honoring the two previous items. It exits with status - exit_failure (defined in exitfail.h). This is the +/* This function is always triggered when memory is exhausted. + It must be defined by the application, either explicitly + or by using gnulib's xalloc-die module. This is the function to call when one wants the program to die because of a memory allocation failure. */ extern void xalloc_die (void) ATTRIBUTE_NORETURN; diff --git a/lib/xmalloc.c b/lib/xmalloc.c index cc75019..9b7a948 100644 --- a/lib/xmalloc.c +++ b/lib/xmalloc.c @@ -1,6 +1,6 @@ /* xmalloc.c -- malloc with out of memory checking - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2003, + 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 @@ -26,36 +26,10 @@ #include #include -#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 -/* 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. */ -- 2.7.4