diff options
| -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 |
