import of readline-4.3
[deliverable/binutils-gdb.git] / readline / xmalloc.c
CommitLineData
d60d9f65
SS
1/* xmalloc.c -- safe versions of malloc and realloc */
2
3/* Copyright (C) 1991 Free Software Foundation, Inc.
4
5 This file is part of GNU Readline, a library for reading lines
6 of text with interactive input and history editing.
7
8 Readline is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
f9267e15 10 Free Software Foundation; either version 2, or (at your option) any
d60d9f65
SS
11 later version.
12
13 Readline is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Readline; see the file COPYING. If not, write to the Free
f9267e15
EZ
20 Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
21#define READLINE_LIBRARY
d60d9f65
SS
22
23#if defined (HAVE_CONFIG_H)
24#include <config.h>
25#endif
26
27#include <stdio.h>
28
29#if defined (HAVE_STDLIB_H)
30# include <stdlib.h>
31#else
32# include "ansi_stdlib.h"
33#endif /* HAVE_STDLIB_H */
34
f9267e15 35#include "xmalloc.h"
d60d9f65
SS
36
37/* **************************************************************** */
38/* */
39/* Memory Allocation and Deallocation. */
40/* */
41/* **************************************************************** */
42
f9267e15
EZ
43static void
44memory_error_and_abort (fname)
45 char *fname;
46{
47 fprintf (stderr, "%s: out of virtual memory\n", fname);
48 exit (2);
49}
50
d60d9f65
SS
51/* Return a pointer to free()able block of memory large enough
52 to hold BYTES number of bytes. If the memory cannot be allocated,
53 print an error message and abort. */
84041b4c 54PTR_T
d60d9f65 55xmalloc (bytes)
84041b4c 56 size_t bytes;
d60d9f65 57{
84041b4c 58 PTR_T temp;
d60d9f65 59
84041b4c 60 temp = malloc (bytes);
d60d9f65
SS
61 if (temp == 0)
62 memory_error_and_abort ("xmalloc");
63 return (temp);
64}
65
84041b4c 66PTR_T
d60d9f65 67xrealloc (pointer, bytes)
f9267e15 68 PTR_T pointer;
84041b4c 69 size_t bytes;
d60d9f65 70{
84041b4c 71 PTR_T temp;
d60d9f65 72
84041b4c 73 temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
d60d9f65
SS
74
75 if (temp == 0)
76 memory_error_and_abort ("xrealloc");
77 return (temp);
78}
79
d60d9f65
SS
80/* Use this as the function to call when adding unwind protects so we
81 don't need to know what free() returns. */
82void
83xfree (string)
f9267e15 84 PTR_T string;
d60d9f65
SS
85{
86 if (string)
87 free (string);
88}
This page took 0.026845 seconds and 4 git commands to generate.