summaryrefslogtreecommitdiffstats
path: root/generic/tclStrToD.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-02-06 20:07:13 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-02-06 20:07:13 (GMT)
commit185cdc39c6ed70ecf07f8427be94091fffc05238 (patch)
treed9b203144a88e2acc7863909ab455bdff17ffcb2 /generic/tclStrToD.c
parent365ee5bb13790058832ec464d8a1239bbfd02fac (diff)
parent2eba1ce11e24976640d99ae78cec26cc67508f15 (diff)
downloadtcl-185cdc39c6ed70ecf07f8427be94091fffc05238.zip
tcl-185cdc39c6ed70ecf07f8427be94091fffc05238.tar.gz
tcl-185cdc39c6ed70ecf07f8427be94091fffc05238.tar.bz2
TIP 484: Merge 'int' and 'wideInt' Obj-type to a single 'int'
Diffstat (limited to 'generic/tclStrToD.c')
-rw-r--r--generic/tclStrToD.c48
1 files changed, 10 insertions, 38 deletions
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index 630e498..ac2ca68 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -1268,32 +1268,18 @@ TclParseNumber(
}
}
if (!octalSignificandOverflow) {
- if (octalSignificandWide >
- (Tcl_WideUInt)(((~(unsigned long)0) >> 1) + signum)) {
-#ifndef TCL_WIDE_INT_IS_LONG
- if (octalSignificandWide <= (MOST_BITS + signum)) {
- objPtr->typePtr = &tclWideIntType;
- if (signum) {
- objPtr->internalRep.wideValue =
- - (Tcl_WideInt) octalSignificandWide;
- } else {
- objPtr->internalRep.wideValue =
- (Tcl_WideInt) octalSignificandWide;
- }
- break;
- }
-#endif
+ if (octalSignificandWide > (MOST_BITS + signum)) {
TclInitBignumFromWideUInt(&octalSignificandBig,
octalSignificandWide);
octalSignificandOverflow = 1;
} else {
objPtr->typePtr = &tclIntType;
if (signum) {
- objPtr->internalRep.longValue =
- - (long) octalSignificandWide;
+ objPtr->internalRep.wideValue =
+ - (Tcl_WideInt) octalSignificandWide;
} else {
- objPtr->internalRep.longValue =
- (long) octalSignificandWide;
+ objPtr->internalRep.wideValue =
+ (Tcl_WideInt) octalSignificandWide;
}
}
}
@@ -1315,32 +1301,18 @@ TclParseNumber(
}
returnInteger:
if (!significandOverflow) {
- if (significandWide >
- (Tcl_WideUInt)(((~(unsigned long)0) >> 1) + signum)) {
-#ifndef TCL_WIDE_INT_IS_LONG
- if (significandWide <= MOST_BITS+signum) {
- objPtr->typePtr = &tclWideIntType;
- if (signum) {
- objPtr->internalRep.wideValue =
- - (Tcl_WideInt) significandWide;
- } else {
- objPtr->internalRep.wideValue =
- (Tcl_WideInt) significandWide;
- }
- break;
- }
-#endif
+ if (significandWide > MOST_BITS+signum) {
TclInitBignumFromWideUInt(&significandBig,
significandWide);
significandOverflow = 1;
} else {
objPtr->typePtr = &tclIntType;
if (signum) {
- objPtr->internalRep.longValue =
- - (long) significandWide;
+ objPtr->internalRep.wideValue =
+ - (Tcl_WideInt) significandWide;
} else {
- objPtr->internalRep.longValue =
- (long) significandWide;
+ objPtr->internalRep.wideValue =
+ (Tcl_WideInt) significandWide;
}
}
}