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)
commit100b2b2e05bfa69635582926388fe5b9adc6baa3 (patch)
tree966b73ff43ff8a55beeaa03c75d6b657e49a082f
parent81c1f15aff0ed7ab5c3e6ff85071787619f7ed45 (diff)
parent68feed9f4e09c3677ca335a790e197df2bdc5cf5 (diff)
downloadtcl-100b2b2e05bfa69635582926388fe5b9adc6baa3.zip
tcl-100b2b2e05bfa69635582926388fe5b9adc6baa3.tar.gz
tcl-100b2b2e05bfa69635582926388fe5b9adc6baa3.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)} {