Index: generic/xotcl.c =================================================================== diff -u -r39a142bba1228a228ab72054aa7a7bd64333db3c -r496dfc7bd5088b8a90f1fe532cd22336c151b06d --- generic/xotcl.c (.../xotcl.c) (revision 39a142bba1228a228ab72054aa7a7bd64333db3c) +++ generic/xotcl.c (.../xotcl.c) (revision 496dfc7bd5088b8a90f1fe532cd22336c151b06d) @@ -210,7 +210,7 @@ static XOTclCallStackContent *CallStackGetFrame(Tcl_Interp *interp, Tcl_CallFrame **framePtrPtr); XOTCLINLINE static void CallStackDoDestroy(Tcl_Interp *interp, XOTclObject *object); -static int XOTclCInvalidateObjectParameterMethod(Tcl_Interp *interp, XOTclClass *cl); +static int XOTclInvalidateObjectParameterCmd(Tcl_Interp *interp, XOTclClass *cl); static int ProcessMethodArguments(parseContext *pcPtr, Tcl_Interp *interp, XOTclObject *object, int pushFrame, XOTclParamDefs *paramDefs, CONST char *methodName, int objc, Tcl_Obj *CONST objv[]); @@ -3938,7 +3938,7 @@ MixinResetOrderForInstances(interp, ncl); /* this place seems to be sufficient to invalidate the computed object parameter definitions */ /*fprintf(stderr, "MixinInvalidateObjOrders via class mixin %s calls ifd invalidate \n", className(ncl));*/ - XOTclCInvalidateObjectParameterMethod(interp, ncl); + XOTclInvalidateObjectParameterCmd(interp, ncl); } } Tcl_DeleteHashTable(commandTable); @@ -11322,6 +11322,19 @@ return TCL_OK; } +/* +xotclCmd invalidateobjectparameter XOTclInvalidateObjectParameterCmd { + {-argName "class" -type class} +} +*/ +static int XOTclInvalidateObjectParameterCmd(Tcl_Interp *interp, XOTclClass *cl) { + if (cl->parsedParamPtr) { + /*fprintf(stderr, " %s invalidate %p\n", className(cl), cl->parsedParamPtr);*/ + ParsedParamFree(cl->parsedParamPtr); + cl->parsedParamPtr = NULL; + } + return TCL_OK; +} /* xotclCmd is XOTclIsCmd { @@ -12657,7 +12670,7 @@ * e) when slots are removed * * When slot defaults or types are changed, the slots have to - * perform a manual "$domain invalidateobjectparameter" + * perform a manual "::nsf::invalidateobjectparameter $domain" */ /* @@ -13630,15 +13643,6 @@ mixin, " on ", className(cl), (char *) NULL); } -static int XOTclCInvalidateObjectParameterMethod(Tcl_Interp *interp, XOTclClass *cl) { - if (cl->parsedParamPtr) { - /*fprintf(stderr, " %s invalidate %p\n", className(cl), cl->parsedParamPtr);*/ - ParsedParamFree(cl->parsedParamPtr); - cl->parsedParamPtr = NULL; - } - return TCL_OK; -} - static int RecreateObject(Tcl_Interp *interp, XOTclClass *class, XOTclObject *object, int objc, Tcl_Obj *CONST objv[]) { int result;