diff options
| author | ferrieux <ferrieux@users.sourceforge.net> | 2014-09-27 20:28:47 (GMT) |
|---|---|---|
| committer | ferrieux <ferrieux@users.sourceforge.net> | 2014-09-27 20:28:47 (GMT) |
| commit | 11db57d05815ec16e0955c80286da2ebee975156 (patch) | |
| tree | 894a164f60db049455d487ab557fb6f2a02cc2ad | |
| parent | fc21aee8149d870eb415300d7153cc1627c84fea (diff) | |
| download | tcl-11db57d05815ec16e0955c80286da2ebee975156.zip tcl-11db57d05815ec16e0955c80286da2ebee975156.tar.gz tcl-11db57d05815ec16e0955c80286da2ebee975156.tar.bz2 | |
Applied patch by Andreas Leitgeb so that [string cat]'s compiled bytecode optimally groups args by 255 for INSTR_STR_CONCAT1.
| -rw-r--r-- | generic/tclCompCmdsSZ.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 2b83fd2..617a520 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -322,8 +322,8 @@ TclCompileStringCatCmd( CompileWord(envPtr, wordTokenPtr, interp, i); numArgs ++; if (numArgs >= 254) { /* 254 to take care of the possible +1 of "folded" above */ - TclEmitInstInt1(INST_STR_CONCAT1, 254, envPtr); - numArgs -= 253; /* concat pushes 1 obj, the result */ + TclEmitInstInt1(INST_STR_CONCAT1, numArgs, envPtr); + numArgs = 1; /* concat pushes 1 obj, the result */ } } wordTokenPtr = TokenAfter(wordTokenPtr); |
