|
|
1.1 root 1: /* Part of CPP library. (memory allocation - xmalloc etc)
2: Copyright (C) 1986, 87, 89, 92, 93, 94, 1995 Free Software Foundation, Inc.
3: Written by Per Bothner, 1994.
4: Based on CCCP program by by Paul Rubin, June 1986
5: Adapted to ANSI C, Richard Stallman, Jan 1987
6:
7: This program is free software; you can redistribute it and/or modify it
8: under the terms of the GNU General Public License as published by the
9: Free Software Foundation; either version 2, or (at your option) any
10: later version.
11:
12: This program is distributed in the hope that it will be useful,
13: but WITHOUT ANY WARRANTY; without even the implied warranty of
14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: GNU General Public License for more details.
16:
17: You should have received a copy of the GNU General Public License
18: along with this program; if not, write to the Free Software
19: Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20:
21: In other words, you are welcome to use, share and improve this program.
22: You are forbidden to forbid anyone else to use, share and improve
23: what you give them. Help stamp out software-hoarding! */
24:
25: #include "config.h"
26:
27: static void
28: memory_full ()
29: {
30: fatal ("Memory exhausted.");
31: }
32:
33: char *
34: xmalloc (size)
35: unsigned size;
36: {
37: register char *ptr = (char *) malloc (size);
38: if (ptr != 0) return (ptr);
39: memory_full ();
40: /*NOTREACHED*/
41: return 0;
42: }
43:
44: char *
45: xrealloc (old, size)
46: char *old;
47: unsigned size;
48: {
49: register char *ptr = (char *) realloc (old, size);
50: if (ptr == 0)
51: memory_full ();
52: return ptr;
53: }
54:
55: char *
56: xcalloc (number, size)
57: unsigned number, size;
58: {
59: register unsigned total = number * size;
60: register char *ptr = (char *) calloc (number, size);
61: if (ptr == 0)
62: memory_full ();
63: return ptr;
64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.