diff options
author | GitHub Actions <action@github.com> | 2020-06-28 14:43:57 +0300 |
---|---|---|
committer | GitHub Actions <action@github.com> | 2020-06-28 14:43:57 +0300 |
commit | 82f70c08f70bbe657b6b409d51f62098a647c90c (patch) | |
tree | ba369edba6a66d8513b3cbf30ea1dd3fce984df2 | |
parent | 4b7116583c904e40018ba3644db0bc9bcd1ebcfa (diff) |
Upstream release v3.7.3v3.7.3
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | include/nlohmann/json.hpp | 18 |
2 files changed, 9 insertions, 11 deletions
@@ -13,7 +13,7 @@ include(FetchContent) FetchContent_Declare(json GIT_REPOSITORY https://github.com/ArthurSonzogni/nlohman_json - GIT_TAG v3.7.2) + GIT_TAG v3.7.3) FetchContent_GetProperties(json) if(NOT json_POPULATED) diff --git a/include/nlohmann/json.hpp b/include/nlohmann/json.hpp index 443459f..06da815 100644 --- a/include/nlohmann/json.hpp +++ b/include/nlohmann/json.hpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 3.7.2 +| | |__ | | | | | | version 3.7.3 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License <http://opensource.org/licenses/MIT>. @@ -32,7 +32,7 @@ SOFTWARE. #define NLOHMANN_JSON_VERSION_MAJOR 3 #define NLOHMANN_JSON_VERSION_MINOR 7 -#define NLOHMANN_JSON_VERSION_PATCH 2 +#define NLOHMANN_JSON_VERSION_PATCH 3 #include <algorithm> // all_of, find, for_each #include <cassert> // assert @@ -15496,7 +15496,7 @@ class basic_json object = nullptr; // silence warning, see #821 if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) { - JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.7.2")); // LCOV_EXCL_LINE + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.7.3")); // LCOV_EXCL_LINE } break; } @@ -15553,14 +15553,13 @@ class basic_json else if (t == value_t::object) { stack.reserve(object->size()); - for (auto&& it : *object) { stack.push_back(std::move(it.second)); } } - while (!stack.empty()) + while (not stack.empty()) { // move the last item to local variable to be processed basic_json current_item(std::move(stack.back())); @@ -15570,8 +15569,6 @@ class basic_json // its children to the stack to be processed later if (current_item.is_array()) { - stack.reserve(stack.size() + current_item.m_value.array->size()); - std::move(current_item.m_value.array->begin(), current_item.m_value.array->end(), std::back_inserter(stack)); @@ -15579,15 +15576,16 @@ class basic_json } else if (current_item.is_object()) { - stack.reserve(stack.size() + current_item.m_value.object->size()); - for (auto&& it : *current_item.m_value.object) { stack.push_back(std::move(it.second)); } + + current_item.m_value.object->clear(); } - // current_item is destroyed here + // it's now safe that current_item get destructed + // since it doesn't have any children } switch (t) |