diff options
author | dgp <dgp@users.sourceforge.net> | 2013-04-09 17:46:07 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-04-09 17:46:07 (GMT) |
commit | a2e18e256757b76c407a89041c8446c593d2accb (patch) | |
tree | 1ed06fe2c481285dba07bedd065c4b7a4e013f64 | |
parent | 83337cf80be450db1df41219b8f1683c74797666 (diff) | |
download | tcl-a2e18e256757b76c407a89041c8446c593d2accb.zip tcl-a2e18e256757b76c407a89041c8446c593d2accb.tar.gz tcl-a2e18e256757b76c407a89041c8446c593d2accb.tar.bz2 |
First simple-minded attempt at fix. Fixes the demo script.bug_3610383
Causes massive test failures.
-rw-r--r-- | generic/tclOOMethod.c | 13 |
1 files 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; } |