source: trunk/third/readline/xmalloc.c @ 15410

Revision 15410, 2.2 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15409, which included commits to RCS files with non-trunk default branches.
Line 
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
10   Free Software Foundation; either version 2, or (at your option) any
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
20   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
21#define READLINE_LIBRARY
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
35#include "xmalloc.h"
36
37/* **************************************************************** */
38/*                                                                  */
39/*                 Memory Allocation and Deallocation.              */
40/*                                                                  */
41/* **************************************************************** */
42
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
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. */
54char *
55xmalloc (bytes)
56     int bytes;
57{
58  char *temp;
59
60  temp = (char *)malloc (bytes);
61  if (temp == 0)
62    memory_error_and_abort ("xmalloc");
63  return (temp);
64}
65
66char *
67xrealloc (pointer, bytes)
68     PTR_T pointer;
69     int bytes;
70{
71  char *temp;
72
73  temp = pointer ? (char *)realloc (pointer, bytes) : (char *)malloc (bytes);
74
75  if (temp == 0)
76    memory_error_and_abort ("xrealloc");
77  return (temp);
78}
79
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)
84     PTR_T string;
85{
86  if (string)
87    free (string);
88}
Note: See TracBrowser for help on using the repository browser.