From 9d7eb12205beea542a84ffc39a24a909264c2102 Mon Sep 17 00:00:00 2001 From: andreas_kupries Date: Tue, 22 Jul 2008 22:26:56 +0000 Subject: * generic/tclCompile.c: Made the new TclEnterCmdWordIndex * generic/tclCompile.h: static, and ansified. --- ChangeLog | 3 +++ generic/tclCompile.c | 25 ++++++++++++++----------- generic/tclCompile.h | 5 +---- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7b8e05b..e923588 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-07-22 Andreas Kupries + * 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 -- cgit v0.12