summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2019-05-16 18:17:52 (GMT)
committersebres <sebres@users.sourceforge.net>2019-05-16 18:17:52 (GMT)
commit2865a8da13749af3807ff9ea42c079f8c6c73133 (patch)
tree87c5f3b9c83fe3c86a41b6bf2886c74ecdbe3ffe /generic
parentccc592df50d217757d74cb343d046a92d76860c1 (diff)
downloadtcl-2865a8da13749af3807ff9ea42c079f8c6c73133.zip
tcl-2865a8da13749af3807ff9ea42c079f8c6c73133.tar.gz
tcl-2865a8da13749af3807ff9ea42c079f8c6c73133.tar.bz2
small amend to [ac566e9df84daeab] with rollback of done/continue optimization
Diffstat (limited to 'generic')
-rw-r--r--generic/tclCmdMZ.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 6be5087..d2485ef 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -4009,6 +4009,7 @@ Tcl_TimeRateObjCmd(
TMRT_EV_DIRECT, TMRT_OVERHEAD, TMRT_CALIBRATE, TMRT_LAST
};
ByteCode *codePtr = NULL;
+ int codeOptimized = 0;
for (i = 1; i < objc - 1; i++) {
int index;
@@ -4200,6 +4201,7 @@ Tcl_TimeRateObjCmd(
*/
if (codePtr->codeStart[codePtr->numCodeBytes-1] == INST_DONE) {
codePtr->codeStart[codePtr->numCodeBytes-1] = INST_CONTINUE;
+ codeOptimized = 1;
}
}
@@ -4487,6 +4489,11 @@ Tcl_TimeRateObjCmd(
done:
if (codePtr != NULL) {
+ if ( codeOptimized
+ && codePtr->codeStart[codePtr->numCodeBytes-1] == INST_CONTINUE
+ ) {
+ codePtr->codeStart[codePtr->numCodeBytes-1] = INST_DONE;
+ }
TclReleaseByteCode(codePtr);
}
return result;