加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Fix error whenparses the value of 5E-324 with libc++.patch 865 Bytes
一键复制 编辑 原始数据 按行查看 历史
diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp
index f233abb..8f4c544 100755
--- a/src/lib_json/json_reader.cpp
+++ b/src/lib_json/json_reader.cpp
@@ -1666,6 +1666,12 @@ bool OurReader::decodeDouble(Token& token, Value& decoded) {
const String buffer(token.start_, token.end_);
IStringStream is(buffer);
if (!(is >> value)) {
+ // the value could be lower than numeric_limits<double>::min(), in this situtation we should return the value with the gurantee
+ // of conversion which has been performed and no occurances of range error.
+ if ((value > 0 && value < std::numeric_limits<double>::min()) || (value < 0 && value > -std::numeric_limits<double>::min())) {
+ decoded = value;
+ return true;
+ }
return addError(
"'" + String(token.start_, token.end_) + "' is not a number.", token);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化