summaryrefslogtreecommitdiff
path: root/Include/mymalloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'Include/mymalloc.h')
-rw-r--r--Include/mymalloc.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/Include/mymalloc.h b/Include/mymalloc.h
index aadd0f3048..e4315bdb98 100644
--- a/Include/mymalloc.h
+++ b/Include/mymalloc.h
@@ -53,12 +53,14 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define NULL 0
#endif
-#define NEW(type, n) ( (type *) malloc((n) * sizeof(type)) )
+/* XXX Always allocate one extra byte, since some malloc's return NULL
+ XXX for malloc(0) or realloc(p, 0). */
+#define NEW(type, n) ( (type *) malloc(1 + (n) * sizeof(type)) )
#define RESIZE(p, type, n) \
if ((p) == NULL) \
- (p) = (type *) malloc((n) * sizeof(type)); \
+ (p) = (type *) malloc(1 + (n) * sizeof(type)); \
else \
- (p) = (type *) realloc((ANY *)(p), (n) * sizeof(type))
+ (p) = (type *) realloc((ANY *)(p), 1 + (n) * sizeof(type))
#define DEL(p) free((ANY *)p)
#define XDEL(p) if ((p) == NULL) ; else DEL(p)