summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authorandreask <andreask>2011-05-17 21:26:26 (GMT)
committerandreask <andreask>2011-05-17 21:26:26 (GMT)
commitae8c7e936a3c00a11a29a50f2b80df021acbea51 (patch)
treea4bbac44980f75997bbb2923ce29f7d17cb3a70d /generic/tclBasic.c
parent96524bb4dd0127496d2baf6792d0de093157297b (diff)
downloadtcl-ae8c7e936a3c00a11a29a50f2b80df021acbea51.zip
tcl-ae8c7e936a3c00a11a29a50f2b80df021acbea51.tar.gz
tcl-ae8c7e936a3c00a11a29a50f2b80df021acbea51.tar.bz2
* generic/tclCompile.c (TclFixupForwardJump): Tracked down and fixed
* generic/tclBasic.c (TclArgumentBCEnter): the cause of a violation of my assertion that 'ePtr->nline == objc' in TclArgumentBCEnter. When a bytecode was grown during jump fixup the pc -> command line mapping was not updated. When things aligned just wrong the mapping would direct command A to the data for command B, with a different number of arguments.
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 71bd45c..750c9e2 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -4764,6 +4764,10 @@ TclArgumentBCEnter(interp,objv,objc,codePtr,cfPtr,pc)
* have to save them at compile time.
*/
+ if (ePtr->nline != objc) {
+ Tcl_Panic ("TIP 280 data structure inconsistency");
+ }
+
for (word = 1; word < objc; word++) {
if (ePtr->line[word] >= 0) {
int isnew;