ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/meta/ealloc.c
Revision: 1.2
Committed: Wed Apr 23 00:52:34 2003 UTC (20 years, 11 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R6P1, rad3R6
Changes since 1.1: +3 -4 lines
Log Message:
Added (void *) cast to realloc calls

File Contents

# Content
1 #ifndef lint
2 static const char RCSid[] = "$Id$";
3 #endif
4 /*
5 * ealloc.c - memory routines which call quit on error.
6 */
7
8
9 #include <stdio.h>
10 #include <stdlib.h>
11
12
13
14 char *
15 emalloc(n) /* return pointer to n uninitialized bytes */
16 unsigned n;
17 {
18 register char *cp;
19
20 if (n == 0)
21 return(NULL);
22
23 if ((cp = malloc(n)) != NULL)
24 return(cp);
25
26 eputs("Out of memory in emalloc\n");
27 quit(1);
28 }
29
30
31 char *
32 ecalloc(ne, es) /* return pointer to initialized memory */
33 register unsigned ne;
34 unsigned es;
35 {
36 register char *cp;
37
38 ne *= es;
39 if (ne == 0)
40 return(NULL);
41
42 if ((cp = malloc(ne)) == NULL) {
43 eputs("Out of memory in ecalloc\n");
44 quit(1);
45 }
46 cp += ne;
47 while (ne--)
48 *--cp = 0;
49 return(cp);
50 }
51
52
53 char *
54 erealloc(cp, n) /* reallocate cp to size n */
55 register char *cp;
56 unsigned n;
57 {
58 if (n == 0) {
59 if (cp != NULL)
60 free(cp);
61 return(NULL);
62 }
63
64 if (cp == NULL)
65 cp = malloc(n);
66 else
67 cp = realloc((void *)cp, n);
68
69 if (cp != NULL)
70 return(cp);
71
72 eputs("Out of memory in erealloc\n");
73 quit(1);
74 }
75
76
77 efree(cp) /* free memory allocated by above */
78 char *cp;
79 {
80 free((void *)cp);
81 }