From f4185577e56a893b9375bc94d71bef5f9eb51891 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 12 Aug 2022 23:18:02 -0700 Subject: Chapter 27.3 --- clox/src/memory.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'clox/src/memory.c') diff --git a/clox/src/memory.c b/clox/src/memory.c index 677feed..8c32386 100644 --- a/clox/src/memory.c +++ b/clox/src/memory.c @@ -95,6 +95,12 @@ static void blackenObject(Obj *object) { markArray(&function->chunk.constants); break; } + case OBJ_INSTANCE: { + ObjInstance *instance = (ObjInstance *)object; + markObject((Obj *)instance->klass); + markTable(&instance->fields); + break; + } case OBJ_UPVALUE: markValue(((ObjUpvalue *)object)->closed); break; @@ -126,6 +132,12 @@ static void freeObject(Obj *object) { FREE(ObjFunction, object); break; } + case OBJ_INSTANCE: { + ObjInstance *instance = (ObjInstance *)object; + freeTable(&instance->fields); + FREE(ObjInstance, object); + break; + } case OBJ_NATIVE: FREE(ObjNative, object); break; -- cgit v1.2.3-54-g00ecf