diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-12-27 21:20:12 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-12-27 21:20:12 (GMT) |
| commit | 84dc0b4d3effc20aca63a2ef49f14591d0616241 (patch) | |
| tree | 4e0555f5f0006e32489ff3a24508890876ee05e2 | |
| parent | df27c0e0f7807903e4cd6334fd520636131c41ba (diff) | |
| parent | 722f0647558e5ddf3d682f7e3ea3fa6152a5eef1 (diff) | |
| download | tcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.zip tcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.tar.gz tcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.tar.bz2 | |
merge 8.7 (fixes [98006f00ac471be5])
| -rw-r--r-- | generic/tclBasic.c | 8 | ||||
| -rw-r--r-- | tests/expr.test | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 1649998..9073642 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -8224,7 +8224,9 @@ ExprIsUnorderedFunc( if (type == TCL_NUMBER_NAN) { result = 1; } else { - d = *((const double *) ptr); + if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) { + return TCL_ERROR; + } result = (ClassifyDouble(d) == FP_NAN); } @@ -8234,7 +8236,9 @@ ExprIsUnorderedFunc( if (type == TCL_NUMBER_NAN) { result |= 1; } else { - d = *((const double *) ptr); + if (Tcl_GetDoubleFromObj(interp, objv[2], &d) != TCL_OK) { + return TCL_ERROR; + } result |= (ClassifyDouble(d) == FP_NAN); } diff --git a/tests/expr.test b/tests/expr.test index 76e5b6c..aca97a5 100644 --- a/tests/expr.test +++ b/tests/expr.test @@ -7397,8 +7397,8 @@ test expr-60.9 {float classification: basic arg handling} -body { } -match glob -result * # Big matrix of comparisons, but it's just a binary isinf() -set values {1.0 -1.0 0.0 -0.0 1e-314 Inf -Inf NaN} -set results {0 0 0 0 0 0 0 1} +set values {1 -1 1.0 -1.0 0.0 -0.0 1e-314 Inf -Inf NaN} +set results {0 0 0 0 0 0 0 0 0 1} set ctr 0 foreach v1 $values r1 $results { foreach v2 $values r2 $results { |
