aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-02-04 00:07:11 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-02-04 00:07:11 +0000
commitbce1b515d4e50c4e2d39e705d6d1708fe634b185 (patch)
tree2def338d62b145f10f7098b77ca513785f12bc62
parent07ea74a57ab1b78b84c792ac2310734c19a71d8c (diff)
Handle negative out of range too.
-rw-r--r--document/src/vespa/document/select/parse_utils.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/document/src/vespa/document/select/parse_utils.cpp b/document/src/vespa/document/select/parse_utils.cpp
index 90112ac9c23..80ee4ef9dfb 100644
--- a/document/src/vespa/document/select/parse_utils.cpp
+++ b/document/src/vespa/document/select/parse_utils.cpp
@@ -23,7 +23,9 @@ bool
parse_double(const char* str, size_t len, double& out) {
auto res = std::from_chars(str, str+len, out);
if (res.ec == std::errc::result_out_of_range) {
- out = std::numeric_limits<double>::infinity();
+ out = (str[0] == '-')
+ ? -std::numeric_limits<double>::infinity()
+ : std::numeric_limits<double>::infinity();
return true;
}
return (res.ec == std::errc()) && (res.ptr == str+len);