Index: generic/nsf.c =================================================================== diff -u -r763c2f93238655742da05c5bb5c8d254d704b945 -re9d2589df817b1102655055cc2824b35ea58edfe --- generic/nsf.c (.../nsf.c) (revision 763c2f93238655742da05c5bb5c8d254d704b945) +++ generic/nsf.c (.../nsf.c) (revision e9d2589df817b1102655055cc2824b35ea58edfe) @@ -12145,6 +12145,8 @@ NsfObject *object = GetObjectFromString(interp, key); assert(object); + assert(object->refCount>0); + assert(object->cmdName->refCount>0); if (object->activationCount > 0) { Tcl_CallFrame *framePtr; @@ -12176,6 +12178,8 @@ } } /*fprintf(stderr, "all assertions passed\n");*/ + Tcl_DeleteHashTable(tablePtr); + return TCL_OK; } @@ -16099,27 +16103,6 @@ return TCL_OK; } -#if !defined(NDEBUG) -static void -CheckAllInstances(Tcl_Interp *interp, NsfClass *cl, int lvl) { - Tcl_HashSearch search; - Tcl_HashEntry *hPtr; - if (cl && cl->object.refCount>0) { - /*fprintf(stderr, "Checkallinstances %d cl=%p '%s'\n", lvl, cl, className(cl));*/ - for (hPtr = Tcl_FirstHashEntry(&cl->instances, &search); hPtr; - hPtr = Tcl_NextHashEntry(&search)) { - NsfObject *inst = (NsfObject*) Tcl_GetHashKey(&cl->instances, hPtr); - assert(inst); - assert(inst->refCount>0); - assert(inst->cmdName->refCount>0); - if (NsfObjectIsClass(inst)) { - CheckAllInstances(interp, (NsfClass*) inst, lvl+1); - } - } - } -} -#endif - #ifdef DO_FULL_CLEANUP /* delete global variables and procs */ static void