diff options
author | andreask <andreask> | 2011-05-17 21:26:26 (GMT) |
---|---|---|
committer | andreask <andreask> | 2011-05-17 21:26:26 (GMT) |
commit | ae8c7e936a3c00a11a29a50f2b80df021acbea51 (patch) | |
tree | a4bbac44980f75997bbb2923ce29f7d17cb3a70d /generic/tclBasic.c | |
parent | 96524bb4dd0127496d2baf6792d0de093157297b (diff) | |
download | tcl-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.c | 4 |
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; |