diff options
| author | dgp <dgp@users.sourceforge.net> | 2016-06-29 16:07:24 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2016-06-29 16:07:24 (GMT) |
| commit | 7add065e0f5720a2ee8d4d874931087e1ad246cc (patch) | |
| tree | c08700bc3a3a8ff687299912d741f46d93420d60 /generic/tclProc.c | |
| parent | 3f1e1192cb2dad651a1dd3ce1518c23bb7a0da2a (diff) | |
| parent | c8212c36e91c536433c5a43b8a66ddb19c20d723 (diff) | |
| download | tcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.zip tcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.tar.gz tcl-7add065e0f5720a2ee8d4d874931087e1ad246cc.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclProc.c')
| -rw-r--r-- | generic/tclProc.c | 18 |
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; } |
