From a2e18e256757b76c407a89041c8446c593d2accb Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 9 Apr 2013 17:46:07 +0000 Subject: First simple-minded attempt at fix. Fixes the demo script. Causes massive test failures. --- generic/tclOOMethod.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/generic/tclOOMethod.c b/generic/tclOOMethod.c index 98b4078..2585742 100644 --- a/generic/tclOOMethod.c +++ b/generic/tclOOMethod.c @@ -1422,14 +1422,10 @@ InvokeForwardMethod( argObjs = InitEnsembleRewrite(interp, objc, objv, skip, numPrefixes, prefixObjs, &len); - if (fmPtr->fullyQualified) { - cmdPtr = NULL; - } else { - cmdPtr = (Command *) Tcl_FindCommand(interp, TclGetString(argObjs[0]), - contextPtr->oPtr->namespacePtr, 0 /* normal lookup */); - } + Tcl_CallFrame *framePtr; + TclPushStackFrame(interp, &framePtr, contextPtr->oPtr->namespacePtr, 0); Tcl_NRAddCallback(interp, FinalizeForwardCall, argObjs, NULL, NULL, NULL); - return TclNREvalObjv(interp, len, argObjs, TCL_EVAL_INVOKE, cmdPtr); + return TclNREvalObjv(interp, len, argObjs, TCL_EVAL_NOERR, NULL); } static int @@ -1439,7 +1435,8 @@ FinalizeForwardCall( int result) { Tcl_Obj **argObjs = data[0]; - + + TclPopStackFrame(interp); TclStackFree(interp, argObjs); return result; } -- cgit v0.12