ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/ealloc.c
Revision: 2.9
Committed: Sun Mar 28 20:33:12 2004 UTC (20 years ago) by schorsch
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3
Changes since 2.8: +16 -15 lines
Log Message:
Continued ANSIfication, and other fixes and clarifications.

File Contents

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