summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-09-19 15:05:55 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-09-19 15:05:55 (GMT)
commit4551ca9b2c151484b548e735e322182f8255c2ff (patch)
tree966b73ff43ff8a55beeaa03c75d6b657e49a082f
parent63e65ca6f1995944b98adfe63074f59ea6ba1552 (diff)
parente4dfb0d689c07715c52b1a8b95391e5af075c02f (diff)
downloadtcl-4551ca9b2c151484b548e735e322182f8255c2ff.zip
tcl-4551ca9b2c151484b548e735e322182f8255c2ff.tar.gz
tcl-4551ca9b2c151484b548e735e322182f8255c2ff.tar.bz2
Line numbers wrong in compiled [dict update].
-rw-r--r--generic/tclCompCmds.c2
-rw-r--r--tests/dict.test6
2 files changed, 7 insertions, 1 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 45e856f..9829b9c 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -1633,7 +1633,7 @@ TclCompileDictUpdateCmd(
infoIndex = TclCreateAuxData(duiPtr, &tclDictUpdateInfoType, envPtr);
for (i=0 ; i<numVars ; i++) {
- CompileWord(envPtr, keyTokenPtrs[i], interp, i);
+ CompileWord(envPtr, keyTokenPtrs[i], interp, 2*i+2);
}
TclEmitInstInt4( INST_LIST, numVars, envPtr);
TclEmitInstInt4( INST_DICT_UPDATE_START, dictIndex, envPtr);
diff --git a/tests/dict.test b/tests/dict.test
index f8d62f1..797ab46 100644
--- a/tests/dict.test
+++ b/tests/dict.test
@@ -1893,6 +1893,12 @@ test dict-23.7 {CompileWord OBOE} {
} {}
}} [linenumber]
} 2
+test dict-23.8 {CompileWord OBOE} {
+ apply {n {
+ dict update foo {*}{
+ } [return [incr n -[linenumber]]] x {}
+ }} [linenumber]
+} 1
rename linenumber {}
test dict-24.22 {dict map results (non-compiled)} {