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, 1 month 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

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