aboutsummaryrefslogtreecommitdiff
path: root/jim.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-04-09 08:22:41 +1000
committerSteve Bennett <steveb@workware.net.au>2011-06-10 14:00:11 +1000
commit34351d354006c44bd6fc21f1d509b7996d88004f (patch)
tree1d469401138ba9a287baac315af626d14566b860 /jim.c
parent4485f8dc9597d344186756024bec2e4e38dd4044 (diff)
downloadjimtcl-34351d354006c44bd6fc21f1d509b7996d88004f.zip
jimtcl-34351d354006c44bd6fc21f1d509b7996d88004f.tar.gz
jimtcl-34351d354006c44bd6fc21f1d509b7996d88004f.tar.bz2
collect now also frees objects in the free list
Allows for better management of memory Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r--jim.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/jim.c b/jim.c
index c415a67..fabb67e 100644
--- a/jim.c
+++ b/jim.c
@@ -13059,6 +13059,14 @@ static int Jim_CollectCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *
return JIM_ERR;
}
Jim_SetResultInt(interp, Jim_Collect(interp));
+
+ /* Free all the freed objects. */
+ while (interp->freeList) {
+ Jim_Obj *nextObjPtr = interp->freeList->nextObjPtr;
+ Jim_Free(interp->freeList);
+ interp->freeList = nextObjPtr;
+ }
+
return JIM_OK;
}