summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2013-05-15 10:41:03 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2013-05-15 10:41:03 (GMT)
commitf4d3ebde2af3c5df88de0299af83dddf06c41822 (patch)
treee41acfb37b7397d31cf5d91943a5ebf8bd2f7ca6 /generic
parent1eacac1aa2e8e1f6a11ad280d4d5ac4774672c81 (diff)
parent1d99d2af062fbf3e3af72e1347840eb3555250dc (diff)
downloadtcl-f4d3ebde2af3c5df88de0299af83dddf06c41822.zip
tcl-f4d3ebde2af3c5df88de0299af83dddf06c41822.tar.gz
tcl-f4d3ebde2af3c5df88de0299af83dddf06c41822.tar.bz2
merge trunkdkf_bcc_optimize
Diffstat (limited to 'generic')
-rw-r--r--generic/tclCompile.c2
-rw-r--r--generic/tclExecute.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 1572576..6d07189 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -1133,7 +1133,7 @@ PeepholeOptimize(
hPtr = Tcl_FirstHashEntry(
&JUMPTABLEINFO(envPtr, pc+1)->hashTable, &hSearch);
for (; hPtr ; hPtr = Tcl_NextHashEntry(&hSearch)) {
- target = pc + (int) Tcl_GetHashValue(hPtr);
+ target = pc + PTR2INT(Tcl_GetHashValue(hPtr));
(void) Tcl_CreateHashEntry(&targets, (void *) target, &isNew);
}
break;
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index c7817f8..76fd71a 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -2331,8 +2331,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;
}
}