summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreask <andreask>2013-05-13 16:51:23 (GMT)
committerandreask <andreask>2013-05-13 16:51:23 (GMT)
commit5f2257dcfce6b59348bc2baa06635167a7d6a1a6 (patch)
tree301548c9f4680316607ae35c70c35c5348937eeb
parentd162505a0b123105a5ef5acee426f2d085dfb740 (diff)
downloadtcl-5f2257dcfce6b59348bc2baa06635167a7d6a1a6.zip
tcl-5f2257dcfce6b59348bc2baa06635167a7d6a1a6.tar.gz
tcl-5f2257dcfce6b59348bc2baa06635167a7d6a1a6.tar.bz2
Fixed bug in parent revision [832a1994c7] unpredictably breaking thebugfix_832a1994c7_for_precompiled_bc
execution of precompiled bytecode (i.e. tbcload'ed bytecode). The semi-inversion of a guard condition dropped the part about TCL_BYTECODE_PRECOMPILED of the original condition, allowing the core to attempt to recompile code for which there are no script sources (anymore), which then fails.
-rw-r--r--generic/tclExecute.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 628dfe7..98e150c 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -2328,8 +2328,9 @@ TEBCresume(
iPtr->cmdCount += TclGetUInt4AtPtr(pc+5);
if (checkInterp) {
checkInterp = 0;
- if ((codePtr->compileEpoch != iPtr->compileEpoch)
- || (codePtr->nsEpoch != iPtr->varFramePtr->nsPtr->resolverEpoch)) {
+ if (((codePtr->compileEpoch != iPtr->compileEpoch) ||
+ (codePtr->nsEpoch != iPtr->varFramePtr->nsPtr->resolverEpoch)) &&
+ !(codePtr->flags & TCL_BYTECODE_PRECOMPILED)) {
goto instStartCmdFailed;
}
}