|
|
1.1 root 1: /* Allocate and clear storage for bison,
2: Copyright (C) 1984, 1989 Free Software Foundation, Inc.
3:
4: This file is part of Bison, the GNU Compiler Compiler.
5:
6: Bison is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 2, or (at your option)
9: any later version.
10:
11: Bison is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with Bison; see the file COPYING. If not, write to
18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20:
21: #include <stdio.h>
22:
23: extern char *calloc ();
24: extern char *realloc ();
25: extern void done ();
26:
27: extern char *program_name;
28:
29: char *
30: xmalloc (n)
31: register unsigned n;
32: {
33: register char *block;
34:
35: /* Avoid uncertainty about what an arg of 0 will do. */
36: if (n == 0)
37: n = 1;
38: block = calloc (n, 1);
39: if (block == NULL)
40: {
41: fprintf (stderr, "%s: memory exhausted\n", program_name);
42: done (1);
43: }
44:
45: return (block);
46: }
47:
48: char *
49: xrealloc (block, n)
50: register char *block;
51: register unsigned n;
52: {
53: /* Avoid uncertainty about what an arg of 0 will do. */
54: if (n == 0)
55: n = 1;
56: block = realloc (block, n);
57: if (block == NULL)
58: {
59: fprintf (stderr, "%s: memory exhausted\n", program_name);
60: done (1);
61: }
62:
63: return (block);
64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.