diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-04 00:07:11 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-04 00:07:11 +0000 |
commit | bce1b515d4e50c4e2d39e705d6d1708fe634b185 (patch) | |
tree | 2def338d62b145f10f7098b77ca513785f12bc62 /document | |
parent | 07ea74a57ab1b78b84c792ac2310734c19a71d8c (diff) |
Handle negative out of range too.
Diffstat (limited to 'document')
-rw-r--r-- | document/src/vespa/document/select/parse_utils.cpp | 4 |
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); |