From 3f7f31fb81efcc04c41dcc79f2417a766353ad66 Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Mon, 20 Dec 2004 21:20:02 +0000 Subject: fix for last commit; thanks dgp and tclguy for catch/classify/throw --- ChangeLog | 6 ++++-- generic/tclProc.c | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index a0f65ac..2d2512d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 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); /* -- cgit v0.12