From 57ed9226c06b5fbe016e62857fe9662c51da3dfd Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Thu, 2 Jun 2022 22:27:43 -0700 Subject: Chapter 25.3 & 25.4 --- clox/src/memory.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clox/src/memory.c') diff --git a/clox/src/memory.c b/clox/src/memory.c index 3124bb6..1db1c61 100644 --- a/clox/src/memory.c +++ b/clox/src/memory.c @@ -18,6 +18,8 @@ void *reallocate(void *pointer, size_t oldSize, size_t newSize) { static void freeObject(Obj *object) { switch (object->type) { case OBJ_CLOSURE: { + ObjClosure *closure = (ObjClosure *)object; + FREE_ARRAY(ObjUpvalue *, closure->upvalues, closure->upvalueCount); FREE(ObjClosure, object); break; } @@ -36,6 +38,9 @@ static void freeObject(Obj *object) { FREE(ObjString, object); break; } + case OBJ_UPVALUE: + FREE(ObjUpvalue, object); + break; } } -- cgit v1.2.3-54-g00ecf