Index: Makefile.in =================================================================== diff -u -rd7b2898d74c2ff2158ae2cc4ca3f7a6d87533d45 -r399b8ad3f5b8723b9738f1ed1d83ed6f01f3c8d1 --- Makefile.in (.../Makefile.in) (revision d7b2898d74c2ff2158ae2cc4ca3f7a6d87533d45) +++ Makefile.in (.../Makefile.in) (revision 399b8ad3f5b8723b9738f1ed1d83ed6f01f3c8d1) @@ -130,6 +130,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ CC = @CC@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ +# useful for debugging: --param=ssp-buffer-size=4 -fstack-protector-all CFLAGS_WARNING = @CFLAGS_WARNING@ CLEANFILES = @CLEANFILES@ EXEEXT = @EXEEXT@ Index: generic/xotcl.c =================================================================== diff -u -r335be502582c8dbf25ed808978d56a8fde39c991 -r399b8ad3f5b8723b9738f1ed1d83ed6f01f3c8d1 --- generic/xotcl.c (.../xotcl.c) (revision 335be502582c8dbf25ed808978d56a8fde39c991) +++ generic/xotcl.c (.../xotcl.c) (revision 399b8ad3f5b8723b9738f1ed1d83ed6f01f3c8d1) @@ -8245,7 +8245,7 @@ */ if (CallDirectly(interp, object, XO_o_configure_idx, &methodObj)) { ALLOC_ON_STACK(Tcl_Obj*, objc, tov); - memcpy(tov+1, objv+2, sizeof(Tcl_Obj *)*(objc-1)); + memcpy(tov+1, objv+2, sizeof(Tcl_Obj *)*(objc-2)); /* the provided name of the method is just for error reporting */ tov[0] = methodObj ? methodObj : XOTclGlobalObjs[XOTE_CONFIGURE]; result = XOTclOConfigureMethod(interp, object, objc-1, tov); @@ -14050,9 +14050,9 @@ for (hPtr = Tcl_FirstHashEntry(cmdTable, &hSrch); hPtr; hPtr = Tcl_NextHashEntry(&hSrch)) { - char *key = Tcl_GetHashKey(cmdTable, hPtr); - if (XOTclpGetObject(interp, key)) { - /*fprintf(stderr, "child = %s\n", key);*/ + Tcl_Command cmd = Tcl_GetHashValue(hPtr); + + if (XOTclGetObjectFromCmdPtr(cmd)) { result = 1; break; } @@ -14075,7 +14075,7 @@ object->refCount = 1; } assert(object->activationCount == 0); - /*fprintf(stderr, "*** obj %p activationcount %d\n",object, object->activationCount);*/ + /*fprintf(stderr, "finalObjectDeletion obj %p activationcount %d\n", object, object->activationCount);*/ if (object->id) Tcl_DeleteCommandFromToken(interp, object->id); }