diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2025-11-11 15:49:13 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2025-11-11 15:49:13 (GMT) |
| commit | 75114d37bf55c424b0a0dbcda90a999e6c483158 (patch) | |
| tree | 84f2b993aaf7f3794ba1587e8b230d0d59fedca9 | |
| parent | bc12daaf3a0b81279eaff2ed62f9dfbd3e055ca9 (diff) | |
| download | tcl-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.c | 8 | ||||
| -rw-r--r-- | tests/expr.test | 4 |
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 |
