diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | generic/tclProc.c | 6 |
2 files changed, 7 insertions, 5 deletions
@@ -2,8 +2,10 @@ * generic/tclCompile.c: moved TclInitCompiledLocals to tclProc.c * generic/tclProc.c: new static InitCompiledLocals to allow for a - single pass over the proc's arguments at procload time (instead of - two, asdone previously) + single pass over the proc's arguments at proc load time (instead of + two as previously). TclObjInterpProc() now allocates the + compiledLocals on the tcl execution stack, using the new + TclStackAlloc/Free functions. 2004-12-16 Donal K. Fellows <donal.k.fellows@man.ac.uk> diff --git a/generic/tclProc.c b/generic/tclProc.c index c5a8dc7..89434b3 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclProc.c,v 1.70 2004/12/20 18:27:19 msofer Exp $ + * RCS: @(#) $Id: tclProc.c,v 1.71 2004/12/20 21:20:06 msofer Exp $ */ #include "tclInt.h" @@ -1228,13 +1228,13 @@ TclObjInterpProc(clientData, interp, objc, objv) Tcl_IncrRefCount(objPtr); /* local var is a reference */ } else { Tcl_Obj **desiredObjs, *argObj; - ByteCode *codePtr = (ByteCode *) procPtr->bodyPtr->internalRep.otherValuePtr; + ByteCode *codePtr; incorrectArgs: /* * Do initialise all compiled locals, to avoid problems at * DeleteLocalVars. */ - + codePtr = (ByteCode *) procPtr->bodyPtr->internalRep.otherValuePtr; InitCompiledLocals(interp, codePtr, localPtr, varPtr, nsPtr); /* |