diff options
author | Tom Willemse | 2022-06-02 22:27:43 -0700 |
---|---|---|
committer | Tom Willemse | 2022-06-02 22:27:43 -0700 |
commit | 57ed9226c06b5fbe016e62857fe9662c51da3dfd (patch) | |
tree | f8bdae71c33f92ba1e105612ee848fcf168d3777 /clox/src/memory.c | |
parent | e74cbddb0463e93f5d9742accc20bbed027d0b9b (diff) | |
download | crafting-interpreters-57ed9226c06b5fbe016e62857fe9662c51da3dfd.tar.gz crafting-interpreters-57ed9226c06b5fbe016e62857fe9662c51da3dfd.zip |
Chapter 25.3 & 25.4
Diffstat (limited to 'clox/src/memory.c')
-rw-r--r-- | clox/src/memory.c | 5 |
1 files changed, 5 insertions, 0 deletions
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; } } |