summaryrefslogtreecommitdiff
path: root/mem.h
diff options
context:
space:
mode:
authorubq323 <ubq323@ubq323.website>2023-08-04 23:05:22 +0100
committerubq323 <ubq323@ubq323.website>2023-08-04 23:05:22 +0100
commit93fe66fb8ef5c731b46a30a804f74b4bf3b133d7 (patch)
treef3c1121f992ac6d651af22e03ad55a44a8c84e2c /mem.h
parentf67a3fd05c1b2fe8c749fc2f58287b1b14b011d8 (diff)
give M extra param for tracking alloc size; macros for allocation
Diffstat (limited to 'mem.h')
-rw-r--r--mem.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/mem.h b/mem.h
index 8f66fed..0607b14 100644
--- a/mem.h
+++ b/mem.h
@@ -2,7 +2,18 @@
#define _mem_h
#include <stddef.h>
+#include "val.h"
+
+void *M(void *p, size_t old, size_t new);
+
+#define NEW(t) (t*)M(NULL, 0, sizeof(t))
+#define NEW_ARR(t,n) (t*)M(NULL, 0, (n)*sizeof(t))
+#define RENEW_ARR(p,t,old,new) (t*)M((p), (old)*sizeof(t), (new)*sizeof(t))
+#define NEW_OBJ(t, oty) (t*)alloc_obj(sizeof(t), oty)
+
+#define FREE(p,t) M(p, sizeof(t), 0)
+
+Obj *alloc_obj(size_t sz, ObjTy oty);
-void *M(void *p, size_t sz);
#endif