summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-04-09 17:46:07 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-04-09 17:46:07 (GMT)
commita2e18e256757b76c407a89041c8446c593d2accb (patch)
tree1ed06fe2c481285dba07bedd065c4b7a4e013f64
parent83337cf80be450db1df41219b8f1683c74797666 (diff)
downloadtcl-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.c13
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;
}