summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorandreas_kupries <andreas_kupries@noemail.net>2008-07-22 21:40:03 (GMT)
committerandreas_kupries <andreas_kupries@noemail.net>2008-07-22 21:40:03 (GMT)
commiteceb74403fd6dd050eb27e21cd522dabec64c9be (patch)
treecef9d19da7d093c66b64a11ba40714de761a2840 /generic/tclExecute.c
parentf76d914a0e1b9ed36c306b9311e03c1d517040e4 (diff)
downloadtcl-eceb74403fd6dd050eb27e21cd522dabec64c9be.zip
tcl-eceb74403fd6dd050eb27e21cd522dabec64c9be.tar.gz
tcl-eceb74403fd6dd050eb27e21cd522dabec64c9be.tar.bz2
* generic/tclBasic.c: Reworked the handling of bytecode literals
* generic/tclCompile.c: for #280 to fix the abysmal performance * generic/tclCompile.h: for deep recursion, replaced the linear * generic/tclExecute.c: search through the whole stack with * generic/tclInt.h: another hashtable and simplified the data structure used by the compiler (array instead of hashtable). Incidentially this also fixes the memory leak reported via [Bug 2024937]. FossilOrigin-Name: bb509fe952436dae5b069f624b2029dcc0777f80
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index b94785d..7d0eb11 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclExecute.c,v 1.94.2.25 2008/04/14 16:25:49 dgp Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.94.2.26 2008/07/22 21:40:31 andreas_kupries Exp $
*/
#include "tclInt.h"
@@ -1245,6 +1245,8 @@ TclExecuteByteCode(interp, codePtr)
bcFrame.data.tebc.pc = NULL;
bcFrame.cmd.str.cmd = NULL;
bcFrame.cmd.str.len = 0;
+
+ TclArgumentBCEnter((Tcl_Interp*) iPtr,codePtr,&bcFrame);
#endif
#ifdef TCL_COMPILE_DEBUG
@@ -4514,6 +4516,9 @@ TclExecuteByteCode(interp, codePtr)
ckfree((char *) catchStackPtr);
}
eePtr->stackTop = initStackTop;
+
+ TclArgumentBCRelease((Tcl_Interp*) iPtr,codePtr);
+
return result;
#undef STATIC_CATCH_STACK_SIZE
}