diff options
| author | dgp@users.sourceforge.net <dgp> | 2014-12-22 19:57:36 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2014-12-22 19:57:36 (GMT) |
| commit | ef753054a81adfd73464d97e8fbf4ff9ae1e87b9 (patch) | |
| tree | 7bc810dd408033761ce772a6bbdf70df7961f3d1 | |
| parent | bd9951e5173f9ccba43d108f4f653c5860d3d4a9 (diff) | |
| download | tcl-ef753054a81adfd73464d97e8fbf4ff9ae1e87b9.zip tcl-ef753054a81adfd73464d97e8fbf4ff9ae1e87b9.tar.gz tcl-ef753054a81adfd73464d97e8fbf4ff9ae1e87b9.tar.bz2 | |
More complete use of the TCL_NO_ELEMENT flag to suppress useless actions.
| -rw-r--r-- | generic/tclCompCmds.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c index 30c1318..ee9209a 100644 --- a/generic/tclCompCmds.c +++ b/generic/tclCompCmds.c @@ -3313,7 +3313,7 @@ TclPushVarName( } } - if ((elName != NULL) && elNameChars) { + if (!(flags & TCL_NO_ELEMENT) && (elName != NULL) && elNameChars) { /* * An array element, the element name is a simple string: * assemble the corresponding token. @@ -3366,7 +3366,8 @@ TclPushVarName( remainingChars = (varTokenPtr[2].start - p) - 1; elNameChars = (varTokenPtr[n].start-p) + varTokenPtr[n].size - 1; - if (remainingChars) { + if (!(flags & TCL_NO_ELEMENT)) { + if (remainingChars) { /* * Make a first token with the extra characters in the first * token. @@ -3386,13 +3387,14 @@ TclPushVarName( memcpy(elemTokenPtr+1, varTokenPtr+2, (n-1) * sizeof(Tcl_Token)); - } else { + } else { /* * Use the already available tokens. */ elemTokenPtr = &varTokenPtr[2]; elemTokenCount = n - 1; + } } } } |
