From 39060a67e99e9bae37b6009a9e0da453e7665b65 Mon Sep 17 00:00:00 2001 From: CPunch Date: Tue, 26 Dec 2023 12:27:45 -0600 Subject: [PATCH] fix cosmoB_loadObjLib() - wrong # of pairs passed to cosmoV_makeTable - minor refactoring of cmem.c:sweep() --- src/cbaselib.c | 2 +- src/cmem.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cbaselib.c b/src/cbaselib.c index b575709..138141f 100644 --- a/src/cbaselib.c +++ b/src/cbaselib.c @@ -243,7 +243,7 @@ COSMO_API void cosmoB_loadObjLib(CState *state) cosmoV_pushString(state, "__proto"); // key cosmoV_pushCFunction(state, cosmoB_ogetProto); // value - cosmoV_makeTable(state, 2); + cosmoV_makeTable(state, 1); // make __setter table cosmoV_pushString(state, "__setter"); diff --git a/src/cmem.c b/src/cmem.c index 8912d80..e148e52 100644 --- a/src/cmem.c +++ b/src/cmem.c @@ -231,11 +231,11 @@ static void traceGrays(CState *state) static void sweep(CState *state) { - CObj *prev = NULL; - CObj *object = state->objects; + CObj *prev = NULL, *object = state->objects; + while (object != NULL) { if (object->isMarked) { // skip over it - object->isMarked = false; // rest to white + object->isMarked = false; // reset to white prev = object; object = object->next; } else { // free it!