summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-10-30 08:47:33 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-10-30 08:47:33 (GMT)
commitfe508fa3b5c9dffaebbd68b86344a799a45075c4 (patch)
tree5dbc8e9998a9a9b1c96e2ec1f3fb2fd1e7ddc04c
parente0578530b062a38b3fe7dfd1474dd3caa927c271 (diff)
downloadtcl-fe508fa3b5c9dffaebbd68b86344a799a45075c4.zip
tcl-fe508fa3b5c9dffaebbd68b86344a799a45075c4.tar.gz
tcl-fe508fa3b5c9dffaebbd68b86344a799a45075c4.tar.bz2
Experimental branch meant to eliminate the "wideint" type, just merge it to a single "int" type. No effect on linux64 and similar systems, code simplification for Win64 and 32-bit system. No TIP yet, implementation ongoing.
-rw-r--r--generic/tclCmdMZ.c4
-rw-r--r--generic/tclDisassemble.c6
-rw-r--r--generic/tclExecute.c8
-rw-r--r--generic/tclGet.c2
-rw-r--r--generic/tclInt.h14
-rw-r--r--generic/tclObj.c26
-rw-r--r--generic/tclProc.c4
-rw-r--r--generic/tclStrToD.c8
-rw-r--r--generic/tclStubInit.c2
-rw-r--r--generic/tclUtil.c8
10 files changed, 41 insertions, 41 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 2195aa1..522b76f 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -1580,9 +1580,9 @@ StringIsCmd(
result = length1 == 0;
}
} else if (((index == STR_IS_TRUE) &&
- objPtr->internalRep.longValue == 0)
+ objPtr->internalRep.wideValue == 0)
|| ((index == STR_IS_FALSE) &&
- objPtr->internalRep.longValue != 0)) {
+ objPtr->internalRep.wideValue != 0)) {
result = 0;
}
break;
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c
index d61ed42..70a5847 100644
--- a/generic/tclDisassemble.c
+++ b/generic/tclDisassemble.c
@@ -797,7 +797,7 @@ TclNewInstNameObj(
Tcl_Obj *objPtr = Tcl_NewObj();
objPtr->typePtr = &tclInstNameType;
- objPtr->internalRep.longValue = (long) inst;
+ objPtr->internalRep.wideValue = (long) inst;
objPtr->bytes = NULL;
return objPtr;
@@ -817,7 +817,7 @@ static void
UpdateStringOfInstName(
Tcl_Obj *objPtr)
{
- int inst = objPtr->internalRep.longValue;
+ int inst = objPtr->internalRep.wideValue;
char *s, buf[20];
int len;
@@ -825,7 +825,7 @@ UpdateStringOfInstName(
sprintf(buf, "inst_%d", inst);
s = buf;
} else {
- s = (char *) tclInstructionTable[objPtr->internalRep.longValue].name;
+ s = (char *) tclInstructionTable[objPtr->internalRep.wideValue].name;
}
len = strlen(s);
objPtr->bytes = ckalloc(len + 1);
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index f4c71ec..b068e0d 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -503,7 +503,7 @@ VarHashCreateVar(
(((objPtr)->typePtr == &tclIntType) \
? (*(tPtr) = TCL_NUMBER_LONG, \
*(ptrPtr) = (ClientData) \
- (&((objPtr)->internalRep.longValue)), TCL_OK) : \
+ (&((objPtr)->internalRep.wideValue)), TCL_OK) : \
((objPtr)->typePtr == &tclDoubleType) \
? (((TclIsNaN((objPtr)->internalRep.doubleValue)) \
? (*(tPtr) = TCL_NUMBER_NAN) \
@@ -518,7 +518,7 @@ VarHashCreateVar(
(((objPtr)->typePtr == &tclIntType) \
? (*(tPtr) = TCL_NUMBER_LONG, \
*(ptrPtr) = (ClientData) \
- (&((objPtr)->internalRep.longValue)), TCL_OK) : \
+ (&((objPtr)->internalRep.wideValue)), TCL_OK) : \
((objPtr)->typePtr == &tclWideIntType) \
? (*(tPtr) = TCL_NUMBER_WIDE, \
*(ptrPtr) = (ClientData) \
@@ -545,7 +545,7 @@ VarHashCreateVar(
#define TclGetBooleanFromObj(interp, objPtr, boolPtr) \
((((objPtr)->typePtr == &tclIntType) \
|| ((objPtr)->typePtr == &tclBooleanType)) \
- ? (*(boolPtr) = ((objPtr)->internalRep.longValue!=0), TCL_OK) \
+ ? (*(boolPtr) = ((objPtr)->internalRep.wideValue!=0), TCL_OK) \
: Tcl_GetBooleanFromObj((interp), (objPtr), (boolPtr)))
/*
@@ -6692,7 +6692,7 @@ TEBCresume(
iterVarPtr = LOCAL(infoPtr->loopCtTemp);
valuePtr = iterVarPtr->value.objPtr;
- iterNum = valuePtr->internalRep.longValue + 1;
+ iterNum = valuePtr->internalRep.wideValue + 1;
TclSetLongObj(valuePtr, iterNum);
/*
diff --git a/generic/tclGet.c b/generic/tclGet.c
index 97e8c7b..727db0a 100644
--- a/generic/tclGet.c
+++ b/generic/tclGet.c
@@ -142,7 +142,7 @@ Tcl_GetBoolean(
Tcl_Panic("invalid sharing of Tcl_Obj on C stack");
}
if (code == TCL_OK) {
- *boolPtr = obj.internalRep.longValue;
+ *boolPtr = obj.internalRep.wideValue;
}
return code;
}
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 0b5ff0c..feffeba 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -2453,17 +2453,17 @@ typedef struct List {
#define TclGetLongFromObj(interp, objPtr, longPtr) \
(((objPtr)->typePtr == &tclIntType) \
- ? ((*(longPtr) = (objPtr)->internalRep.longValue), TCL_OK) \
+ ? ((*(longPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
: Tcl_GetLongFromObj((interp), (objPtr), (longPtr)))
#if (LONG_MAX == INT_MAX)
#define TclGetIntFromObj(interp, objPtr, intPtr) \
(((objPtr)->typePtr == &tclIntType) \
- ? ((*(intPtr) = (objPtr)->internalRep.longValue), TCL_OK) \
+ ? ((*(intPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
: Tcl_GetIntFromObj((interp), (objPtr), (intPtr)))
#define TclGetIntForIndexM(interp, objPtr, endValue, idxPtr) \
(((objPtr)->typePtr == &tclIntType) \
- ? ((*(idxPtr) = (objPtr)->internalRep.longValue), TCL_OK) \
+ ? ((*(idxPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
: TclGetIntForIndex((interp), (objPtr), (endValue), (idxPtr)))
#else
#define TclGetIntFromObj(interp, objPtr, intPtr) \
@@ -2484,7 +2484,7 @@ typedef struct List {
#define TclGetWideIntFromObj(interp, objPtr, wideIntPtr) \
(((objPtr)->typePtr == &tclIntType) \
? (*(wideIntPtr) = (Tcl_WideInt) \
- ((objPtr)->internalRep.longValue), TCL_OK) : \
+ ((objPtr)->internalRep.wideValue), TCL_OK) : \
Tcl_GetWideIntFromObj((interp), (objPtr), (wideIntPtr)))
#else /* !TCL_WIDE_INT_IS_LONG */
#define TclGetWideIntFromObj(interp, objPtr, wideIntPtr) \
@@ -2492,7 +2492,7 @@ typedef struct List {
? (*(wideIntPtr) = (objPtr)->internalRep.wideValue, TCL_OK) : \
((objPtr)->typePtr == &tclIntType) \
? (*(wideIntPtr) = (Tcl_WideInt) \
- ((objPtr)->internalRep.longValue), TCL_OK) : \
+ ((objPtr)->internalRep.wideValue), TCL_OK) : \
Tcl_GetWideIntFromObj((interp), (objPtr), (wideIntPtr)))
#endif /* TCL_WIDE_INT_IS_LONG */
@@ -4545,7 +4545,7 @@ MODULE_SCOPE Tcl_PackageInitProc Procbodytest_SafeInit;
do { \
TclInvalidateStringRep(objPtr); \
TclFreeIntRep(objPtr); \
- (objPtr)->internalRep.longValue = (long)(i); \
+ (objPtr)->internalRep.wideValue = (long)(i); \
(objPtr)->typePtr = &tclIntType; \
} while (0)
@@ -4589,7 +4589,7 @@ MODULE_SCOPE Tcl_PackageInitProc Procbodytest_SafeInit;
TclAllocObjStorage(objPtr); \
(objPtr)->refCount = 0; \
(objPtr)->bytes = NULL; \
- (objPtr)->internalRep.longValue = (long)(i); \
+ (objPtr)->internalRep.wideValue = (long)(i); \
(objPtr)->typePtr = &tclIntType; \
TCL_DTRACE_OBJ_CREATE(objPtr); \
} while (0)
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 1a00011..f0bcc5e 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -1810,7 +1810,7 @@ Tcl_DbNewBooleanObj(
TclDbNewObj(objPtr, file, line);
objPtr->bytes = NULL;
- objPtr->internalRep.longValue = (boolValue != 0);
+ objPtr->internalRep.wideValue = (boolValue != 0);
objPtr->typePtr = &tclIntType;
return objPtr;
}
@@ -1888,11 +1888,11 @@ Tcl_GetBooleanFromObj(
{
do {
if (objPtr->typePtr == &tclIntType) {
- *boolPtr = (objPtr->internalRep.longValue != 0);
+ *boolPtr = (objPtr->internalRep.wideValue != 0);
return TCL_OK;
}
if (objPtr->typePtr == &tclBooleanType) {
- *boolPtr = (int) objPtr->internalRep.longValue;
+ *boolPtr = (int) objPtr->internalRep.wideValue;
return TCL_OK;
}
if (objPtr->typePtr == &tclDoubleType) {
@@ -1960,7 +1960,7 @@ TclSetBooleanFromAny(
if (objPtr->bytes == NULL) {
if (objPtr->typePtr == &tclIntType) {
- switch (objPtr->internalRep.longValue) {
+ switch (objPtr->internalRep.wideValue) {
case 0L: case 1L:
return TCL_OK;
}
@@ -2107,13 +2107,13 @@ ParseBoolean(
goodBoolean:
TclFreeIntRep(objPtr);
- objPtr->internalRep.longValue = newBool;
+ objPtr->internalRep.wideValue = newBool;
objPtr->typePtr = &tclBooleanType;
return TCL_OK;
numericBoolean:
TclFreeIntRep(objPtr);
- objPtr->internalRep.longValue = newBool;
+ objPtr->internalRep.wideValue = newBool;
objPtr->typePtr = &tclIntType;
return TCL_OK;
}
@@ -2294,7 +2294,7 @@ Tcl_GetDoubleFromObj(
return TCL_OK;
}
if (objPtr->typePtr == &tclIntType) {
- *dblPtr = objPtr->internalRep.longValue;
+ *dblPtr = objPtr->internalRep.wideValue;
return TCL_OK;
}
if (objPtr->typePtr == &tclBignumType) {
@@ -2569,7 +2569,7 @@ UpdateStringOfInt(
char buffer[TCL_INTEGER_SPACE];
register int len;
- len = TclFormatInt(buffer, objPtr->internalRep.longValue);
+ len = TclFormatInt(buffer, objPtr->internalRep.wideValue);
objPtr->bytes = ckalloc(len + 1);
memcpy(objPtr->bytes, buffer, (unsigned) len + 1);
@@ -2679,7 +2679,7 @@ Tcl_DbNewLongObj(
TclDbNewObj(objPtr, file, line);
objPtr->bytes = NULL;
- objPtr->internalRep.longValue = longValue;
+ objPtr->internalRep.wideValue = longValue;
objPtr->typePtr = &tclIntType;
return objPtr;
}
@@ -2759,7 +2759,7 @@ Tcl_GetLongFromObj(
{
do {
if (objPtr->typePtr == &tclIntType) {
- *longPtr = objPtr->internalRep.longValue;
+ *longPtr = objPtr->internalRep.wideValue;
return TCL_OK;
}
#ifndef TCL_WIDE_INT_IS_LONG
@@ -3080,7 +3080,7 @@ Tcl_GetWideIntFromObj(
}
#endif
if (objPtr->typePtr == &tclIntType) {
- *wideIntPtr = (Tcl_WideInt) objPtr->internalRep.longValue;
+ *wideIntPtr = (Tcl_WideInt) objPtr->internalRep.wideValue;
return TCL_OK;
}
if (objPtr->typePtr == &tclDoubleType) {
@@ -3402,7 +3402,7 @@ GetBignumFromObj(
return TCL_OK;
}
if (objPtr->typePtr == &tclIntType) {
- TclInitBignumFromLong(bignumValue, objPtr->internalRep.longValue);
+ TclInitBignumFromLong(bignumValue, objPtr->internalRep.wideValue);
return TCL_OK;
}
#ifndef TCL_WIDE_INT_IS_LONG
@@ -3653,7 +3653,7 @@ TclGetNumberFromObj(
}
if (objPtr->typePtr == &tclIntType) {
*typePtr = TCL_NUMBER_LONG;
- *clientDataPtr = &objPtr->internalRep.longValue;
+ *clientDataPtr = &objPtr->internalRep.wideValue;
return TCL_OK;
}
#ifndef TCL_WIDE_INT_IS_LONG
diff --git a/generic/tclProc.c b/generic/tclProc.c
index 96bdcf3..133f41d 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -826,7 +826,7 @@ TclObjGetFrame(
level = curLevel - level;
result = 1;
} else if (objPtr->typePtr == &levelReferenceType) {
- level = (int) objPtr->internalRep.longValue;
+ level = (int) objPtr->internalRep.wideValue;
result = 1;
} else {
name = TclGetString(objPtr);
@@ -834,7 +834,7 @@ TclObjGetFrame(
if (TCL_OK == Tcl_GetInt(NULL, name+1, &level) && level >= 0) {
TclFreeIntRep(objPtr);
objPtr->typePtr = &levelReferenceType;
- objPtr->internalRep.longValue = level;
+ objPtr->internalRep.wideValue = level;
result = 1;
} else {
result = -1;
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index 630e498..c8bc7b5 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -1289,10 +1289,10 @@ TclParseNumber(
} else {
objPtr->typePtr = &tclIntType;
if (signum) {
- objPtr->internalRep.longValue =
+ objPtr->internalRep.wideValue =
- (long) octalSignificandWide;
} else {
- objPtr->internalRep.longValue =
+ objPtr->internalRep.wideValue =
(long) octalSignificandWide;
}
}
@@ -1336,10 +1336,10 @@ TclParseNumber(
} else {
objPtr->typePtr = &tclIntType;
if (signum) {
- objPtr->internalRep.longValue =
+ objPtr->internalRep.wideValue =
- (long) significandWide;
} else {
- objPtr->internalRep.longValue =
+ objPtr->internalRep.wideValue =
(long) significandWide;
}
}
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index ebd2086..c8b4dce 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -244,7 +244,7 @@ static Tcl_Obj *dbNewLongObj(
TclDbNewObj(objPtr, file, line);
objPtr->bytes = NULL;
- objPtr->internalRep.longValue = (long) intValue;
+ objPtr->internalRep.wideValue = (long) intValue;
objPtr->typePtr = &tclIntType;
return objPtr;
#else
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 608cd15..da4dc49 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -3598,7 +3598,7 @@ TclGetIntForIndex(
* be converted to one, use it.
*/
- *indexPtr = endValue + objPtr->internalRep.longValue;
+ *indexPtr = endValue + objPtr->internalRep.wideValue;
return TCL_OK;
}
@@ -3690,9 +3690,9 @@ UpdateStringOfEndOffset(
register int len = 3;
memcpy(buffer, "end", 4);
- if (objPtr->internalRep.longValue != 0) {
+ if (objPtr->internalRep.wideValue != 0) {
buffer[len++] = '-';
- len += TclFormatInt(buffer+len, -(objPtr->internalRep.longValue));
+ len += TclFormatInt(buffer+len, -(objPtr->internalRep.wideValue));
}
objPtr->bytes = ckalloc((unsigned) len+1);
memcpy(objPtr->bytes, buffer, (unsigned) len+1);
@@ -3790,7 +3790,7 @@ SetEndOffsetFromAny(
*/
TclFreeIntRep(objPtr);
- objPtr->internalRep.longValue = offset;
+ objPtr->internalRep.wideValue = offset;
objPtr->typePtr = &tclEndOffsetType;
return TCL_OK;