summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2016-06-29 16:07:24 (GMT)
committerdgp <dgp@users.sourceforge.net>2016-06-29 16:07:24 (GMT)
commit7add065e0f5720a2ee8d4d874931087e1ad246cc (patch)
treec08700bc3a3a8ff687299912d741f46d93420d60 /generic/tclProc.c
parent3f1e1192cb2dad651a1dd3ce1518c23bb7a0da2a (diff)
parentc8212c36e91c536433c5a43b8a66ddb19c20d723 (diff)
downloadtcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.zip
tcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.tar.gz
tcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.tar.bz2
merge trunk
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r--generic/tclProc.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c
index 8223171..ea60586 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -23,7 +23,6 @@
*/
typedef struct {
- int isRootEnsemble;
Command cmd;
ExtraFrameInfo efi;
} ApplyExtraData;
@@ -2696,10 +2695,9 @@ TclNRApplyObjCmd(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- Interp *iPtr = (Interp *) interp;
Proc *procPtr = NULL;
Tcl_Obj *lambdaPtr, *nsObjPtr;
- int result, isRootEnsemble;
+ int result;
Tcl_Namespace *nsPtr;
ApplyExtraData *extraPtr;
@@ -2772,15 +2770,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) {
@@ -2798,10 +2790,6 @@ ApplyNR2(
{
ApplyExtraData *extraPtr = data[0];
- if (extraPtr->isRootEnsemble) {
- ((Interp *) interp)->ensembleRewrite.sourceObjs = NULL;
- }
-
TclStackFree(interp, extraPtr);
return result;
}