diff options
author | andreask <andreask> | 2013-05-13 16:51:23 (GMT) |
---|---|---|
committer | andreask <andreask> | 2013-05-13 16:51:23 (GMT) |
commit | 5f2257dcfce6b59348bc2baa06635167a7d6a1a6 (patch) | |
tree | 301548c9f4680316607ae35c70c35c5348937eeb | |
parent | d162505a0b123105a5ef5acee426f2d085dfb740 (diff) | |
download | tcl-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.c | 5 |
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; } } |