summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2008-07-22 21:40:03 (GMT)
committerandreas_kupries <akupries@shaw.ca>2008-07-22 21:40:03 (GMT)
commitd05bf7949cd1871dd610d12704ab65a04383a587 (patch)
treecef9d19da7d093c66b64a11ba40714de761a2840 /generic/tclExecute.c
parent88229da7b502532388e42cdd3adacc55d2820f9a (diff)
downloadtcl-d05bf7949cd1871dd610d12704ab65a04383a587.zip
tcl-d05bf7949cd1871dd610d12704ab65a04383a587.tar.gz
tcl-d05bf7949cd1871dd610d12704ab65a04383a587.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].
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
}