diff options
author | dgp <dgp@noemail.net> | 2016-06-28 21:17:28 (GMT) |
---|---|---|
committer | dgp <dgp@noemail.net> | 2016-06-28 21:17:28 (GMT) |
commit | f03bcfd5a631b51dedffef86cc3e37cc8bff89f3 (patch) | |
tree | 4240f40e86f601e05a44778a481f5099a63580ad /generic/tclEnsemble.c | |
parent | 4add5f335a10f6e2339f4c0b786209a6282e8dfa (diff) | |
parent | 3edf6a470ace084408c016e355b1d20dec41ef43 (diff) | |
download | tcl-f03bcfd5a631b51dedffef86cc3e37cc8bff89f3.zip tcl-f03bcfd5a631b51dedffef86cc3e37cc8bff89f3.tar.gz tcl-f03bcfd5a631b51dedffef86cc3e37cc8bff89f3.tar.bz2 |
Route all ensemble rewrite activity through a few utility routines.
FossilOrigin-Name: 5f7825d97201cef1c2c18dc8f4398bdaa0744d96
Diffstat (limited to 'generic/tclEnsemble.c')
-rw-r--r-- | generic/tclEnsemble.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index 986a553..1c91734 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -1832,7 +1832,6 @@ NsEnsembleImplementationCmdNR( Tcl_Obj *copyPtr; /* The actual list of words to dispatch to. * Will be freed by the dispatch engine. */ int prefixObjc, copyObjc; - Interp *iPtr = (Interp *) interp; /* * Get the prefix that we're rewriting to. To do this we need to @@ -1876,25 +1875,10 @@ NsEnsembleImplementationCmdNR( * count both as inserted and removed arguments. */ - if (iPtr->ensembleRewrite.sourceObjs == NULL) { - iPtr->ensembleRewrite.sourceObjs = objv; - iPtr->ensembleRewrite.numRemovedObjs = - 2 + ensemblePtr->numParameters; - iPtr->ensembleRewrite.numInsertedObjs = - prefixObjc + ensemblePtr->numParameters; + if (TclInitRewriteEnsemble(interp, 2 + ensemblePtr->numParameters, + prefixObjc + ensemblePtr->numParameters, objv)) { TclNRAddCallback(interp, TclClearRootEnsemble, NULL, NULL, NULL, NULL); - } else { - register int ni = 2 + ensemblePtr->numParameters - - iPtr->ensembleRewrite.numInsertedObjs; - /* Position in objv of new front of insertion - * relative to old one. */ - if (ni > 0) { - iPtr->ensembleRewrite.numRemovedObjs += ni; - iPtr->ensembleRewrite.numInsertedObjs += prefixObjc-1; - } else { - iPtr->ensembleRewrite.numInsertedObjs += prefixObjc-2; - } } /* @@ -2013,7 +1997,7 @@ TclInitRewriteEnsemble( if (numIns < numRemoved) { iPtr->ensembleRewrite.numRemovedObjs += numRemoved - numIns; - iPtr->ensembleRewrite.numInsertedObjs += numInserted - 1; + iPtr->ensembleRewrite.numInsertedObjs = numInserted; } else { iPtr->ensembleRewrite.numInsertedObjs += numInserted - numRemoved; } |