diff options
author | dgp <dgp@users.sourceforge.net> | 2016-06-28 22:49:22 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-06-28 22:49:22 (GMT) |
commit | d2629fb2726fa18af638288c9c9aa89369b9fade (patch) | |
tree | 5a668f6c4e6abf7a07037bf9a931592971a77f11 /generic/tclProc.c | |
parent | 2880e7da55a9d5ff7d8ba8fed48743f0e15733a4 (diff) | |
parent | edc450c53752cf92b00a45883fee2d66a2bde27c (diff) | |
download | tcl-d2629fb2726fa18af638288c9c9aa89369b9fade.zip tcl-d2629fb2726fa18af638288c9c9aa89369b9fade.tar.gz tcl-d2629fb2726fa18af638288c9c9aa89369b9fade.tar.bz2 |
merge 8.6
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r-- | generic/tclProc.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c index 172b860..b663caf 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -22,7 +22,6 @@ */ typedef struct { - int isRootEnsemble; Command cmd; ExtraFrameInfo efi; } ApplyExtraData; @@ -870,7 +869,7 @@ TclObjGetFrame( } Tcl_SetObjResult(interp, Tcl_ObjPrintf("bad level \"%s\"", name)); - Tcl_SetErrorCode(interp, "TCL", "VALUE", "STACKLEVEL", NULL); + Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "LEVEL", name, NULL); return -1; } @@ -2634,7 +2633,7 @@ TclNRApplyObjCmd( Interp *iPtr = (Interp *) interp; Proc *procPtr = NULL; Tcl_Obj *lambdaPtr, *nsObjPtr; - int result, isRootEnsemble; + int result; Tcl_Namespace *nsPtr; ApplyExtraData *extraPtr; @@ -2717,15 +2716,9 @@ TclNRApplyObjCmd( extraPtr->efi.fields[0].clientData = lambdaPtr; extraPtr->cmd.clientData = &extraPtr->efi; - isRootEnsemble = (iPtr->ensembleRewrite.sourceObjs == NULL); - if (isRootEnsemble) { - iPtr->ensembleRewrite.sourceObjs = objv; - iPtr->ensembleRewrite.numRemovedObjs = 1; - iPtr->ensembleRewrite.numInsertedObjs = 0; - } else { - iPtr->ensembleRewrite.numInsertedObjs -= 1; + if (TclInitRewriteEnsemble(interp, 1, 0, objv)) { + TclNRAddCallback(interp, TclClearRootEnsemble, NULL, NULL, NULL, NULL); } - extraPtr->isRootEnsemble = isRootEnsemble; result = TclPushProcCallFrame(procPtr, interp, objc, objv, 1); if (result == TCL_OK) { @@ -2743,10 +2736,6 @@ ApplyNR2( { ApplyExtraData *extraPtr = data[0]; - if (extraPtr->isRootEnsemble) { - ((Interp *) interp)->ensembleRewrite.sourceObjs = NULL; - } - TclStackFree(interp, extraPtr); return result; } |