From 35c762807411b311f4c413b5b44c22400a1a5546 Mon Sep 17 00:00:00 2001 From: sumit0190 Date: Sun, 9 Feb 2020 00:46:13 -0500 Subject: [PATCH] Read and write exported infs/nans correctly (#35388) (cherry picked from commit c4dbd8a7445e74dd0b6959de56c952bad7da1a21) --- core/variant_parser.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 4ce33b0123b..89c5815ad9c 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -518,6 +518,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream, value = false; else if (id == "null" || id == "nil") value = Variant(); + else if (id == "inf") + value = Math_INF; + else if (id == "nan") + value = Math_NAN; else if (id == "Vector2") { Vector args; @@ -1592,8 +1596,10 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str case Variant::REAL: { String s = rtosfix(p_variant.operator real_t()); - if (s.find(".") == -1 && s.find("e") == -1) - s += ".0"; + if (s != "inf" && s != "nan") { + if (s.find(".") == -1 && s.find("e") == -1) + s += ".0"; + } p_store_string_func(p_store_string_ud, s); } break; case Variant::STRING: {