summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2025-11-11 15:49:13 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2025-11-11 15:49:13 (GMT)
commit75114d37bf55c424b0a0dbcda90a999e6c483158 (patch)
tree84f2b993aaf7f3794ba1587e8b230d0d59fedca9
parentbc12daaf3a0b81279eaff2ed62f9dfbd3e055ca9 (diff)
downloadtcl-core-9-0-3.zip
tcl-core-9-0-3.tar.gz
tcl-core-9-0-3.tar.bz2
Fix [8dd2807066] follow-up: two-argument 'max' had the same problemcore-9-0-3
-rw-r--r--generic/tclExecute.c8
-rw-r--r--tests/expr.test4
2 files changed, 8 insertions, 4 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 2b3f766..bd01a99 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -8812,7 +8812,7 @@ TclCompareTwoNumbers(
w2 = (Tcl_WideInt)d2;
goto wideCompare;
case TCL_NUMBER_BIG:
- Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
+ Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
if (mp_isneg(&big2)) {
compare = MP_GT;
} else {
@@ -8849,7 +8849,7 @@ TclCompareTwoNumbers(
if (isinf(d1)) {
return (d1 > 0.0) ? MP_GT : MP_LT;
}
- Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
+ Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
if ((d1 < (double)WIDE_MAX) && (d1 > (double)WIDE_MIN)) {
if (mp_isneg(&big2)) {
compare = MP_GT;
@@ -8871,7 +8871,7 @@ TclCompareTwoNumbers(
break;
case TCL_NUMBER_BIG:
- Tcl_TakeBignumFromObj(NULL, valuePtr, &big1);
+ Tcl_GetBignumFromObj(NULL, valuePtr, &big1);
switch (type2) {
case TCL_NUMBER_INT:
compare = mp_cmp_d(&big1, 0);
@@ -8898,7 +8898,7 @@ TclCompareTwoNumbers(
Tcl_InitBignumFromDouble(NULL, d2, &big2);
goto bigCompare;
case TCL_NUMBER_BIG:
- Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
+ Tcl_GetBignumFromObj(NULL, value2Ptr, &big2);
bigCompare:
compare = mp_cmp(&big1, &big2);
mp_clear(&big1);
diff --git a/tests/expr.test b/tests/expr.test
index 1efe403..5405859 100644
--- a/tests/expr.test
+++ b/tests/expr.test
@@ -7460,6 +7460,10 @@ test expr-bug-8dd2807066 {Bug 8dd2807066} {
expr {max(abs(-668336881543038127783364011867))}
} 668336881543038127783364011867
+test expr-bug-8dd2807066-1 {Bug 8dd2807066, more elaborate} {
+ expr {max(abs(-668336881543038127783364011867),0)}
+} 668336881543038127783364011867
+
# Bug e3dcab1d14 TODO: Need to work out a test case that fails
# without tcl_precision, which has been eliminated in 9.0