diff options
author | Per Bothner <per@bothner.com> | 1994-01-16 03:39:57 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1994-01-16 03:39:57 +0000 |
commit | 5e98bbab1738932aeeb251684bba6aa550f5885a (patch) | |
tree | e51fd93e8d56b82ea1e55ab8cece5ecb2c0af014 /readline/xmalloc.c | |
parent | 8b564df836ca7baffe636c1a16658cdcb6388080 (diff) | |
download | gdb-5e98bbab1738932aeeb251684bba6aa550f5885a.zip gdb-5e98bbab1738932aeeb251684bba6aa550f5885a.tar.gz gdb-5e98bbab1738932aeeb251684bba6aa550f5885a.tar.bz2 |
Merge in changes from bash-1.13. The most obvious one is
that the file readline.c has been split into multiple files.
* bind.c, complete.c, dispay.c, isearch.c, parens.c, rldefs.h,
rltty.c, search.c signals.c, tilde.c, tilde.h, xmalloc.c: New files.
Diffstat (limited to 'readline/xmalloc.c')
-rw-r--r-- | readline/xmalloc.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/readline/xmalloc.c b/readline/xmalloc.c new file mode 100644 index 0000000..0ed49dd --- /dev/null +++ b/readline/xmalloc.c @@ -0,0 +1,76 @@ +/* xmalloc.c -- safe versions of malloc and realloc */ + +/* Copyright (C) 1991 Free Software Foundation, Inc. + + This file is part of GNU Readline, a library for reading lines + of text with interactive input and history editing. + + Readline 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 1, or (at your option) any + later version. + + Readline 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 Readline; see the file COPYING. If not, write to the Free + Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#if defined (ALREADY_HAVE_XMALLOC) +#else +#include <stdio.h> + +#if defined (HAVE_STDLIB_H) +# include <stdlib.h> +#endif /* HAVE_STDLIB_H */ + +static void memory_error_and_abort (); + +/* **************************************************************** */ +/* */ +/* Memory Allocation and Deallocation. */ +/* */ +/* **************************************************************** */ + +/* Return a pointer to free()able block of memory large enough + to hold BYTES number of bytes. If the memory cannot be allocated, + print an error message and abort. */ +char * +xmalloc (bytes) + int bytes; +{ + char *temp = (char *)malloc (bytes); + + if (!temp) + memory_error_and_abort ("xmalloc"); + return (temp); +} + +char * +xrealloc (pointer, bytes) + char *pointer; + int bytes; +{ + char *temp; + + if (!pointer) + temp = (char *)malloc (bytes); + else + temp = (char *)realloc (pointer, bytes); + + if (!temp) + memory_error_and_abort ("xrealloc"); + return (temp); +} + +static void +memory_error_and_abort (fname) + char *fname; +{ + fprintf (stderr, "%s: Out of virtual memory!\n", fname); + abort (); +} +#endif /* !ALREADY_HAVE_XMALLOC */ |