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 | } |
---|