xpdf-3.02 fixes
[swftools.git] / lib / xpdf / gmem.h
1 /*
2  * gmem.h
3  *
4  * Memory routines with out-of-memory checking.
5  *
6  * Copyright 1996-2003 Glyph & Cog, LLC
7  */
8
9 #ifndef GMEM_H
10 #define GMEM_H
11
12 #include <stdio.h>
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 /*
19  * Same as malloc, but prints error message and exits if malloc()
20  * returns NULL.
21  */
22 extern void *gmalloc(int size);
23
24 /*
25  * Same as realloc, but prints error message and exits if realloc()
26  * returns NULL.  If <p> is NULL, calls malloc instead of realloc().
27  */
28 extern void *grealloc(void *p, int size);
29
30 /*
31  * These are similar to gmalloc and grealloc, but take an object count
32  * and size.  The result is similar to allocating nObjs * objSize
33  * bytes, but there is an additional error check that the total size
34  * doesn't overflow an int.
35  */
36 extern void *gmallocn(int nObjs, int objSize);
37 extern void *greallocn(void *p, int nObjs, int objSize);
38
39 /*
40  * Same as free, but checks for and ignores NULL pointers.
41  */
42 extern void gfree(void *p);
43
44 #ifdef DEBUG_MEM
45 /*
46  * Report on unfreed memory.
47  */
48 extern void gMemReport(FILE *f);
49 #else
50 #define gMemReport(f)
51 #endif
52
53 /*
54  * Allocate memory and copy a string into it.
55  */
56 extern char *copyString(char *s);
57
58 #ifdef __cplusplus
59 }
60 #endif
61
62 #endif