diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-11-23 18:44:58 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-11-23 18:44:58 -0500 |
commit | fe34a312c8be645944828402351bd1192972586b (patch) | |
tree | ca2a8dae3e43cc5d8ee1d96b6252255eecd866ff /xmalloc.c | |
parent | 06cd36cdc90634c88636a6d09230c573078ead0e (diff) | |
download | readline-fe34a312c8be645944828402351bd1192972586b.tar.gz |
Readline-2.1 import
Diffstat (limited to 'xmalloc.c')
-rw-r--r-- | xmalloc.c | 33 |
1 files changed, 21 insertions, 12 deletions
@@ -19,8 +19,10 @@ 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 +#if defined (HAVE_CONFIG_H) +#include <config.h> +#endif + #include <stdio.h> #if defined (HAVE_STDLIB_H) @@ -44,9 +46,10 @@ char * xmalloc (bytes) int bytes; { - char *temp = (char *)malloc (bytes); + char *temp; - if (!temp) + temp = (char *)malloc (bytes); + if (temp == 0) memory_error_and_abort ("xmalloc"); return (temp); } @@ -58,12 +61,9 @@ xrealloc (pointer, bytes) { char *temp; - if (!pointer) - temp = (char *)malloc (bytes); - else - temp = (char *)realloc (pointer, bytes); + temp = pointer ? (char *)realloc (pointer, bytes) : (char *)malloc (bytes); - if (!temp) + if (temp == 0) memory_error_and_abort ("xrealloc"); return (temp); } @@ -72,7 +72,16 @@ static void memory_error_and_abort (fname) char *fname; { - fprintf (stderr, "%s: Out of virtual memory!\n", fname); - abort (); + fprintf (stderr, "%s: out of virtual memory\n", fname); + exit (2); +} + +/* Use this as the function to call when adding unwind protects so we + don't need to know what free() returns. */ +void +xfree (string) + char *string; +{ + if (string) + free (string); } -#endif /* !ALREADY_HAVE_XMALLOC */ |