summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2009-06-13 14:31:54 (GMT)
committerdgp <dgp@users.sourceforge.net>2009-06-13 14:31:54 (GMT)
commitfdb97a3d7dd85152f33c8232bc038c32e995f8af (patch)
tree8a8bac4cfc411db6707e3d29ce9f63736576578c /generic/tclProc.c
parent6e902e710f444b6f54b6134c61317a4d37a22804 (diff)
downloadtcl-fdb97a3d7dd85152f33c8232bc038c32e995f8af.zip
tcl-fdb97a3d7dd85152f33c8232bc038c32e995f8af.tar.gz
tcl-fdb97a3d7dd85152f33c8232bc038c32e995f8af.tar.bz2
* generic/tclCompile.c: The value stashed in iPtr->compiledProcPtr
* generic/tclProc.c: when compiling a proc survives too long. We * tests/execute.test: only need it there long enough for the right TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once that is done, the CompileEnv controls. If we let the value of iPtr->compiledProcPtr linger, though, then any other bytecode compile operation that takes place will also have its CompileEnv initialized with it, and that's not correct. The value is meant to control the compile of the proc body only, not other compile tasks that happen along. Thanks to Carlos Tasada for discovering and reporting the problem. [Bug 2802881].
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r--generic/tclProc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c
index 2062672..7696015 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -12,7 +12,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.171 2009/03/24 09:30:07 dkf Exp $
+ * RCS: @(#) $Id: tclProc.c,v 1.172 2009/06/13 14:31:54 dgp Exp $
*/
#include "tclInt.h"
@@ -1939,7 +1939,6 @@ TclProcCompileProc(
{
Interp *iPtr = (Interp *) interp;
Tcl_CallFrame *framePtr;
- Proc *saveProcPtr;
ByteCode *codePtr = bodyPtr->internalRep.otherValuePtr;
/*
@@ -2009,7 +2008,6 @@ TclProcCompileProc(
* appropriate class context.
*/
- saveProcPtr = iPtr->compiledProcPtr;
iPtr->compiledProcPtr = procPtr;
if (procPtr->numCompiledLocals > procPtr->numArgs) {
@@ -2055,7 +2053,6 @@ TclProcCompileProc(
tclByteCodeType.setFromAnyProc(interp, bodyPtr);
iPtr->invokeCmdFramePtr = NULL;
TclPopStackFrame(interp);
- iPtr->compiledProcPtr = saveProcPtr;
} else if (codePtr->nsEpoch != nsPtr->resolverEpoch) {
/*
* The resolver epoch has changed, but we only need to invalidate the