diff options
author | andreas_kupries <akupries@shaw.ca> | 2008-07-22 21:41:48 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2008-07-22 21:41:48 (GMT) |
commit | 9f031215bb9752fcfc9c9065039b509c0962117e (patch) | |
tree | 60a7f49c73794657a02d93ddc3f272200e6f0c2d /generic/tclExecute.c | |
parent | 63d4144a37db8c69be1a8090936516467f684480 (diff) | |
download | tcl-9f031215bb9752fcfc9c9065039b509c0962117e.zip tcl-9f031215bb9752fcfc9c9065039b509c0962117e.tar.gz tcl-9f031215bb9752fcfc9c9065039b509c0962117e.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.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index b26d77e..0102f5a 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -14,7 +14,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.386 2008/07/22 21:02:28 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.387 2008/07/22 21:41:55 andreas_kupries Exp $ */ #include "tclInt.h" @@ -1877,6 +1877,9 @@ TclExecuteByteCode( bcFramePtr->data.tebc.pc = NULL; bcFramePtr->cmd.str.cmd = NULL; bcFramePtr->cmd.str.len = 0; + + TclArgumentBCEnter((Tcl_Interp*) iPtr,codePtr,bcFramePtr); + #if (USE_NR_TEBC) } else if (tailcall) { goto tailcallEntry; @@ -7757,6 +7760,8 @@ TclExecuteByteCode( } } + TclArgumentBCRelease((Tcl_Interp*) iPtr,codePtr); + #if USE_NR_TEBC oldBottomPtr = bottomPtr->prevBottomPtr; #endif |