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