summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1999-01-01 17:36:43 +0000
committerJim Meyering <jim@meyering.net>1999-01-01 17:36:43 +0000
commit3b3e52352c67f1545a593be8dd0fbeccfc5c47ef (patch)
tree3a44fbd52837cc41e183db9001f24407e89f2288 /lib
parentaa014b906c92d2baa3e54e4acf8b0f361accb2b3 (diff)
downloadcoreutils-3b3e52352c67f1545a593be8dd0fbeccfc5c47ef.tar.xz
Add comments.
(PARAMS, XMALLOC, XCALLOC, XREALLOC): Define. Based on changes from Akim Demaille.
Diffstat (limited to 'lib')
-rw-r--r--lib/xalloc.h53
1 files changed, 42 insertions, 11 deletions
diff --git a/lib/xalloc.h b/lib/xalloc.h
index 3f8d77925..2709ad866 100644
--- a/lib/xalloc.h
+++ b/lib/xalloc.h
@@ -1,21 +1,52 @@
-#ifndef PARAMS
-# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
-# define PARAMS(Args) Args
-# else
-# define PARAMS(Args) ()
+/* xalloc.h -- malloc with out-of-memory checking
+ Copyright (C) 1990-1998, 1999 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
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef XALLOC_H_
+# define XALLOC_H_
+
+# ifndef PARAMS
+# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+# define PARAMS(Args) Args
+# else
+# define PARAMS(Args) ()
+# endif
# endif
-#endif
/* Exit value when the requested amount of memory is not available.
- The caller may set it to some other value. */
+ It is initialized to EXIT_FAILURE, but the caller may set it to
+ some other value. */
extern int xalloc_exit_failure;
-/* FIXME: describe */
-extern char *const xalloc_msg_memory_exhausted;
-
-/* FIXME: describe */
+/* If this pointer is non-zero, run the specified function upon each
+ allocation failure. It is initialized to zero. */
extern void (*xalloc_fail_func) ();
+/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
+ message must be non-NULL. It is translated via gettext.
+ The default value is "Memory exhausted". */
+extern char *const xalloc_msg_memory_exhausted;
+
void *xmalloc PARAMS ((size_t n));
void *xcalloc PARAMS ((size_t n, size_t s));
void *xrealloc PARAMS ((void *p, size_t n));
+
+# define XMALLOC(Type, N_bytes) ((Type *) xmalloc (sizeof (Type) * (N_bytes)))
+# define XCALLOC(Type, N_bytes) ((Type *) xcalloc (sizeof (Type), (N_bytes)))
+# define XREALLOC(Ptr, Type, N_bytes) \
+ ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_bytes)))
+
+#endif /* !XALLOC_H_ */