summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-09-19 12:20:13 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-09-19 12:20:13 (GMT)
commit9c7cec89a95143fb90c190c5c0f6d01424ea1431 (patch)
tree99e3b9a0a6a5a8038009b04e891bdd51ec13462c /generic
parent6ad8909af3c178fac395992cd972c98270bf2e3c (diff)
downloadtcl-9c7cec89a95143fb90c190c5c0f6d01424ea1431.zip
tcl-9c7cec89a95143fb90c190c5c0f6d01424ea1431.tar.gz
tcl-9c7cec89a95143fb90c190c5c0f6d01424ea1431.tar.bz2
Line numbers wrong in compiled foreach body.
Diffstat (limited to 'generic')
-rw-r--r--generic/tclCompCmds.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index fa4762d..2013568 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -1628,7 +1628,7 @@ TclCompileForeachCmd(
Tcl_Token *tokenPtr, *bodyTokenPtr;
unsigned char *jumpPc;
JumpFixup jumpFalseFixup;
- int jumpBackDist, jumpBackOffset, infoIndex, range, bodyIndex;
+ int jumpBackDist, jumpBackOffset, infoIndex, range;
int numWords, numLists, numVars, loopIndex, tempVar, i, j, code;
int savedStackDepth = envPtr->currStackDepth;
DefineLineInformation; /* TIP #280 */
@@ -1669,8 +1669,6 @@ TclCompileForeachCmd(
return TCL_ERROR;
}
- bodyIndex = i-1;
-
/*
* Allocate storage for the varcList and varvList arrays if necessary.
*/
@@ -1837,7 +1835,7 @@ TclCompileForeachCmd(
* Inline compile the loop body.
*/
- SetLineInformation (bodyIndex);
+ SetLineInformation (numWords - 1);
ExceptionRangeStarts(envPtr, range);
CompileBody(envPtr, bodyTokenPtr, interp);
ExceptionRangeEnds(envPtr, range);