summaryrefslogtreecommitdiff
path: root/vm.c
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 /vm.c
parentf67a3fd05c1b2fe8c749fc2f58287b1b14b011d8 (diff)
give M extra param for tracking alloc size; macros for allocation
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/vm.c b/vm.c
index a9610d2..4933614 100644
--- a/vm.c
+++ b/vm.c
@@ -16,10 +16,12 @@ Chunk chunk_new() {
.clen = 0, .ccap = 0, .c = NULL,
};
}
+
+
size_t chunk_wbc(Chunk *ch, uint8_t byte) {
if (ch->blen == ch->bcap) {
size_t newsz = (ch->bcap == 0 ? 8 : ch->bcap * 2);
- ch->b = M(ch->b, newsz * sizeof(uint8_t));
+ ch->b = RENEW_ARR(ch->b, uint8_t, ch->bcap, newsz);
ch->bcap = newsz;
}
size_t ix = ch->blen;
@@ -30,7 +32,7 @@ size_t chunk_wbc(Chunk *ch, uint8_t byte) {
size_t chunk_wconst(Chunk *ch, Val v) {
if (ch->clen == ch->ccap) {
size_t newsz = (ch->ccap == 0 ? 8 : ch->ccap *2);
- ch->c = M(ch->c, newsz * sizeof(Val));
+ ch->c = RENEW_ARR(ch->c, Val, ch->ccap, newsz);
ch->ccap = newsz;
}
size_t ix = ch->clen;