summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2024-12-27 21:20:12 (GMT)
committersebres <sebres@users.sourceforge.net>2024-12-27 21:20:12 (GMT)
commit84dc0b4d3effc20aca63a2ef49f14591d0616241 (patch)
tree4e0555f5f0006e32489ff3a24508890876ee05e2
parentdf27c0e0f7807903e4cd6334fd520636131c41ba (diff)
parent722f0647558e5ddf3d682f7e3ea3fa6152a5eef1 (diff)
downloadtcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.zip
tcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.tar.gz
tcl-84dc0b4d3effc20aca63a2ef49f14591d0616241.tar.bz2
merge 8.7 (fixes [98006f00ac471be5])
-rw-r--r--generic/tclBasic.c8
-rw-r--r--tests/expr.test4
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 {