diff options
author | seandeelywoods <seandeelywoods> | 2013-03-18 12:41:14 (GMT) |
---|---|---|
committer | seandeelywoods <seandeelywoods> | 2013-03-18 12:41:14 (GMT) |
commit | 87d0bd2b565cc904bdd135291c1baa5ff5cea4d5 (patch) | |
tree | 63b370c68febf9ed24fc630644117cf735313b40 /generic/tclCompExpr.c | |
parent | 3faa92fe264c5671bd8dad903cb13ca5ce302781 (diff) | |
parent | 3fda4f0df6f0fdabe84372aee281ffb4ca7108e1 (diff) | |
download | tcl-hypnotoad_bug_3598385.zip tcl-hypnotoad_bug_3598385.tar.gz tcl-hypnotoad_bug_3598385.tar.bz2 |
Merging in changes from trunkhypnotoad_bug_3598385
Diffstat (limited to 'generic/tclCompExpr.c')
-rw-r--r-- | generic/tclCompExpr.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c index 890d518..3597abe 100644 --- a/generic/tclCompExpr.c +++ b/generic/tclCompExpr.c @@ -2207,7 +2207,7 @@ ExecConstantExprTree( TclInitByteCodeObj(byteCodeObj, envPtr); TclFreeCompileEnv(envPtr); TclStackFree(interp, envPtr); - byteCodePtr = byteCodeObj->internalRep.otherValuePtr; + byteCodePtr = byteCodeObj->internalRep.twoPtrValue.ptr1; TclNRExecuteByteCode(interp, byteCodePtr); code = TclNRRunCallbacks(interp, TCL_OK, rootPtr); Tcl_DecrRefCount(byteCodeObj); @@ -2445,14 +2445,11 @@ CompileExprTree( Tcl_Obj *literal = *litObjv; if (optimize) { - int length, index; + int length; const char *bytes = TclGetStringFromObj(literal, &length); - LiteralEntry *lePtr; - Tcl_Obj *objPtr; - - index = TclRegisterNewLiteral(envPtr, bytes, length); - lePtr = envPtr->literalArrayPtr + index; - objPtr = lePtr->objPtr; + int index = TclRegisterNewLiteral(envPtr, bytes, length); + Tcl_Obj *objPtr = TclFetchLiteral(envPtr, index); + if ((objPtr->typePtr == NULL) && (literal->typePtr != NULL)) { /* * Would like to do this: @@ -2511,7 +2508,7 @@ CompileExprTree( index = TclRegisterNewLiteral(envPtr, objPtr->bytes, objPtr->length); - tableValue = envPtr->literalArrayPtr[index].objPtr; + tableValue = TclFetchLiteral(envPtr, index); if ((tableValue->typePtr == NULL) && (objPtr->typePtr != NULL)) { /* |