diff options
author | andreas_kupries <akupries@shaw.ca> | 2008-07-22 22:26:56 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2008-07-22 22:26:56 (GMT) |
commit | 5ff2cd900ac75bd6ca50ded1d43f976e92e305e2 (patch) | |
tree | 63465572cb8d0eb40ed73a6036bb9f8ec6eb0486 | |
parent | 6c521632f821e6cc475a30eeae962bf410423f0e (diff) | |
download | tcl-5ff2cd900ac75bd6ca50ded1d43f976e92e305e2.zip tcl-5ff2cd900ac75bd6ca50ded1d43f976e92e305e2.tar.gz tcl-5ff2cd900ac75bd6ca50ded1d43f976e92e305e2.tar.bz2 |
* generic/tclCompile.c: Made the new TclEnterCmdWordIndex
* generic/tclCompile.h: static, and ansified.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | generic/tclCompile.c | 25 | ||||
-rw-r--r-- | generic/tclCompile.h | 5 |
3 files changed, 18 insertions, 15 deletions
@@ -1,5 +1,8 @@ 2008-07-22 Andreas Kupries <andreask@activestate.com> + * generic/tclCompile.c: Made the new TclEnterCmdWordIndex + * generic/tclCompile.h: static, and ansified. + * 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 diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 19011d9..e3ce0c9 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.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: tclCompile.c,v 1.146.2.3 2008/07/22 21:41:12 andreas_kupries Exp $ + * RCS: @(#) $Id: tclCompile.c,v 1.146.2.4 2008/07/22 22:26:57 andreas_kupries Exp $ */ #include "tclInt.h" @@ -414,6 +414,9 @@ static void EnterCmdExtentData(CompileEnv *envPtr, int cmdNumber, int numSrcBytes, int numCodeBytes); static void EnterCmdStartData(CompileEnv *envPtr, int cmdNumber, int srcOffset, int codeOffset); + +static void EnterCmdWordIndex (ExtCmdLoc *eclPtr, Tcl_Obj* obj, + int pc, int word); static void FreeByteCodeInternalRep(Tcl_Obj *objPtr); static int GetCmdLocEncodingSize(CompileEnv *envPtr); #ifdef TCL_COMPILE_STATS @@ -1462,10 +1465,10 @@ TclCompileScript( tokenPtr[1].start, tokenPtr[1].size); if (eclPtr->type == TCL_LOCATION_SOURCE) { - TclEnterCmdWordIndex (eclPtr, - envPtr->literalArrayPtr[objIndex].objPtr, - envPtr->codeNext - envPtr->codeStart, - wordIdx); + EnterCmdWordIndex (eclPtr, + envPtr->literalArrayPtr[objIndex].objPtr, + envPtr->codeNext - envPtr->codeStart, + wordIdx); } } TclEmitPush(objIndex, envPtr); @@ -2435,12 +2438,12 @@ EnterCmdWordData( eclPtr->nuloc ++; } -void -TclEnterCmdWordIndex (eclPtr, obj, pc, word) - ExtCmdLoc *eclPtr; - Tcl_Obj* obj; - int pc; - int word; +static void +EnterCmdWordIndex ( + ExtCmdLoc *eclPtr, + Tcl_Obj* obj, + int pc, + int word) { ExtIndex* eiPtr; diff --git a/generic/tclCompile.h b/generic/tclCompile.h index e5ef895..777fd3e 100644 --- a/generic/tclCompile.h +++ b/generic/tclCompile.h @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCompile.h,v 1.90.2.2 2008/07/22 21:41:12 andreas_kupries Exp $ + * RCS: @(#) $Id: tclCompile.h,v 1.90.2.3 2008/07/22 22:26:58 andreas_kupries Exp $ */ #ifndef _TCLCOMPILATION @@ -146,9 +146,6 @@ typedef struct ExtCmdLoc { int nueiloc; } ExtCmdLoc; -EXTERN void TclEnterCmdWordIndex (ExtCmdLoc *eclPtr, Tcl_Obj* obj, - int pc, int word); - /* * CompileProcs need the ability to record information during compilation that * can be used by bytecode instructions during execution. The AuxData |