Skip to content

Commit 75114d3

Browse files
author
jan.nijtmans
committed
Fix [8dd2807066] follow-up: two-argument 'max' had the same problem
1 parent bc12daa commit 75114d3

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

generic/tclExecute.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8812,7 +8812,7 @@ TclCompareTwoNumbers(
88128812
w2 = (Tcl_WideInt)d2;
88138813
goto wideCompare;
88148814
case TCL_NUMBER_BIG:
8815-
Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
8815+
Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
88168816
if (mp_isneg(&big2)) {
88178817
compare = MP_GT;
88188818
} else {
@@ -8849,7 +8849,7 @@ TclCompareTwoNumbers(
88498849
if (isinf(d1)) {
88508850
return (d1 > 0.0) ? MP_GT : MP_LT;
88518851
}
8852-
Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
8852+
Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
88538853
if ((d1 < (double)WIDE_MAX) && (d1 > (double)WIDE_MIN)) {
88548854
if (mp_isneg(&big2)) {
88558855
compare = MP_GT;
@@ -8871,7 +8871,7 @@ TclCompareTwoNumbers(
88718871
break;
88728872

88738873
case TCL_NUMBER_BIG:
8874-
Tcl_TakeBignumFromObj(NULL, valuePtr, &big1);
8874+
Tcl_GetBignumFromObj(NULL, valuePtr, &big1);
88758875
switch (type2) {
88768876
case TCL_NUMBER_INT:
88778877
compare = mp_cmp_d(&big1, 0);
@@ -8898,7 +8898,7 @@ TclCompareTwoNumbers(
88988898
Tcl_InitBignumFromDouble(NULL, d2, &big2);
88998899
goto bigCompare;
89008900
case TCL_NUMBER_BIG:
8901-
Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
8901+
Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
89028902
bigCompare:
89038903
compare = mp_cmp(&big1, &big2);
89048904
mp_clear(&big1);

tests/expr.test

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7460,6 +7460,10 @@ test expr-bug-8dd2807066 {Bug 8dd2807066} {
74607460
expr {max(abs(-668336881543038127783364011867))}
74617461
} 668336881543038127783364011867
74627462

7463+
test expr-bug-8dd2807066-1 {Bug 8dd2807066, more elaborate} {
7464+
expr {max(abs(-668336881543038127783364011867),0)}
7465+
} 668336881543038127783364011867
7466+
74637467
# Bug e3dcab1d14 TODO: Need to work out a test case that fails
74647468
# without tcl_precision, which has been eliminated in 9.0
74657469

0 commit comments

Comments
 (0)