diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-12-03 07:38:21 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-12-08 12:28:03 +1000 |
commit | 92f3f1b45b917bb14e61fad225fcd8642dcd5725 (patch) | |
tree | 6fae633ac202889a41e4c12d8d0f2e9252057e86 /jim.c | |
parent | a312320da72bc1745ff9d327aa59ff8bab976782 (diff) | |
download | jimtcl-92f3f1b45b917bb14e61fad225fcd8642dcd5725.zip jimtcl-92f3f1b45b917bb14e61fad225fcd8642dcd5725.tar.gz jimtcl-92f3f1b45b917bb14e61fad225fcd8642dcd5725.tar.bz2 |
Reduce # of different types in the Jim_Obj union
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 28 |
1 files changed, 13 insertions, 15 deletions
@@ -2216,7 +2216,7 @@ static const Jim_ObjType dictSubstObjType = { static void FreeInterpolatedInternalRep(Jim_Interp *interp, Jim_Obj *objPtr) { - Jim_DecrRefCount(interp, (Jim_Obj *)objPtr->internalRep.twoPtrValue.ptr2); + Jim_DecrRefCount(interp, objPtr->internalRep.dictSubstValue.indexObjPtr); } static const Jim_ObjType interpolatedObjType = { @@ -4481,10 +4481,8 @@ static void SetDictSubstFromAny(Jim_Interp *interp, Jim_Obj *objPtr) if (objPtr->typePtr == &interpolatedObjType) { /* An interpolated object in dict-sugar form */ - const ScriptToken *token = objPtr->internalRep.twoPtrValue.ptr1; - - varObjPtr = token[0].objPtr; - keyObjPtr = objPtr->internalRep.twoPtrValue.ptr2; + varObjPtr = objPtr->internalRep.dictSubstValue.varNameObjPtr; + keyObjPtr = objPtr->internalRep.dictSubstValue.indexObjPtr; Jim_IncrRefCount(varObjPtr); Jim_IncrRefCount(keyObjPtr); @@ -6828,12 +6826,12 @@ void UpdateStringOfIndex(struct Jim_Obj *objPtr) int len; char buf[JIM_INTEGER_SPACE + 1]; - if (objPtr->internalRep.indexValue >= 0) - len = sprintf(buf, "%d", objPtr->internalRep.indexValue); - else if (objPtr->internalRep.indexValue == -1) + if (objPtr->internalRep.intValue >= 0) + len = sprintf(buf, "%d", objPtr->internalRep.intValue); + else if (objPtr->internalRep.intValue == -1) len = sprintf(buf, "end"); else { - len = sprintf(buf, "end%d", objPtr->internalRep.indexValue + 1); + len = sprintf(buf, "end%d", objPtr->internalRep.intValue + 1); } objPtr->bytes = Jim_Alloc(len + 1); memcpy(objPtr->bytes, buf, len + 1); @@ -6897,7 +6895,7 @@ int SetIndexFromAny(Jim_Interp *interp, Jim_Obj *objPtr) /* Free the old internal repr and set the new one. */ Jim_FreeIntRep(interp, objPtr); objPtr->typePtr = &indexObjType; - objPtr->internalRep.indexValue = idx; + objPtr->internalRep.intValue = idx; return JIM_OK; badindex: @@ -6919,7 +6917,7 @@ int Jim_GetIndex(Jim_Interp *interp, Jim_Obj *objPtr, int *indexPtr) } if (objPtr->typePtr != &indexObjType && SetIndexFromAny(interp, objPtr) == JIM_ERR) return JIM_ERR; - *indexPtr = objPtr->internalRep.indexValue; + *indexPtr = objPtr->internalRep.intValue; return JIM_OK; } @@ -6980,7 +6978,7 @@ int SetReturnCodeFromAny(Jim_Interp *interp, Jim_Obj *objPtr) /* Free the old internal repr and set the new one. */ Jim_FreeIntRep(interp, objPtr); objPtr->typePtr = &returnCodeObjType; - objPtr->internalRep.returnCode = returnCode; + objPtr->internalRep.intValue = returnCode; return JIM_OK; } @@ -6988,7 +6986,7 @@ int Jim_GetReturnCode(Jim_Interp *interp, Jim_Obj *objPtr, int *intPtr) { if (objPtr->typePtr != &returnCodeObjType && SetReturnCodeFromAny(interp, objPtr) == JIM_ERR) return JIM_ERR; - *intPtr = objPtr->internalRep.returnCode; + *intPtr = objPtr->internalRep.intValue; return JIM_OK; } @@ -9919,8 +9917,8 @@ static Jim_Obj *JimInterpolateTokens(Jim_Interp *interp, const ScriptToken * tok && token[2].type == JIM_TT_VAR) { /* May be able to do fast interpolated object -> dictSubst */ objPtr->typePtr = &interpolatedObjType; - objPtr->internalRep.twoPtrValue.ptr1 = (void *)token; - objPtr->internalRep.twoPtrValue.ptr2 = intv[2]; + objPtr->internalRep.dictSubstValue.varNameObjPtr = token[0].objPtr; + objPtr->internalRep.dictSubstValue.indexObjPtr = intv[2]; Jim_IncrRefCount(intv[2]); } |