mirror of
https://github.com/openharmony/third_party_jsoncpp.git
synced 2026-07-01 10:05:36 -04:00
!37 Fix error whenparses the value of 5E-324 with libc++回合
Merge pull request !37 from fyz1019/master
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
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);
|
||||
}
|
||||
+2
-1
@@ -47,7 +47,7 @@ def apply_patch(patch_file, target_dir):
|
||||
|
||||
|
||||
def do_patch(args, target_dir):
|
||||
patch_file = []
|
||||
patch_file = [ "Fix error whenparses the value of 5E-324 with libc++.patch" ]
|
||||
|
||||
for patch in patch_file:
|
||||
file_path = os.path.join(args.source_file, patch)
|
||||
@@ -62,6 +62,7 @@ def main():
|
||||
tar_file_path = os.path.join(args.source_file, "jsoncpp-1.9.5.tar.gz")
|
||||
target_dir = os.path.join(args.gen_dir, "jsoncpp-1.9.5")
|
||||
untar_file(tar_file_path, target_dir, args)
|
||||
do_patch(args, target_dir)
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user