summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
diff options
context:
space:
mode:
authordonal.k.fellows@manchester.ac.uk <dkf>2012-02-15 10:01:34 (GMT)
committerdonal.k.fellows@manchester.ac.uk <dkf>2012-02-15 10:01:34 (GMT)
commitf5e80987720edb33880ddcde6f8c53a43302d45c (patch)
treecbdc6a0031b4954092cd8a0cefe6fc5cb16a890f /generic/tclCompCmds.c
parent9b926a2d596bce04967d6dc467f6ba8ad86a19fc (diff)
parent56f2df801851e3fae331e26211e8f97bf11ecffd (diff)
downloadtcl-f5e80987720edb33880ddcde6f8c53a43302d45c.zip
tcl-f5e80987720edb33880ddcde6f8c53a43302d45c.tar.gz
tcl-f5e80987720edb33880ddcde6f8c53a43302d45c.tar.bz2
* generic/tclCompCmds.c (TclCompileDictForCmd): [Bug 3487626]: Fix
crash in compilation of [dict for] when its implementation command is used directly rather than through the ensemble.
Diffstat (limited to 'generic/tclCompCmds.c')
-rw-r--r--generic/tclCompCmds.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 57a5370..18ff3dc 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -906,7 +906,7 @@ TclCompileDictForCmd(
* Compile the loop body itself. It should be stack-neutral.
*/
- SetLineInformation(4);
+ SetLineInformation(3);
CompileBody(envPtr, bodyTokenPtr, interp);
TclEmitOpcode( INST_POP, envPtr);
@@ -1112,6 +1112,7 @@ TclCompileDictUpdateCmd(
ExceptionRangeStarts(envPtr, range);
envPtr->currStackDepth++;
+ SetLineInformation(parsePtr->numWords - 1);
CompileBody(envPtr, bodyTokenPtr, interp);
envPtr->currStackDepth = savedStackDepth;
ExceptionRangeEnds(envPtr, range);