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;  | 
