mirror of
https://gitee.com/openharmony/third_party_jsoncpp
synced 2024-11-23 07:20:16 +00:00
Fix error whenparses the value of 5E-324 with libc++
Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
This commit is contained in:
parent
3774339b4a
commit
cac3aed223
17
Fix error whenparses the value of 5E-324 with libc++.patch
Executable file
17
Fix error whenparses the value of 5E-324 with libc++.patch
Executable file
@ -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);
|
||||
}
|
@ -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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user