diff --git a/include/nlohmann/detail/input/json_sax.hpp b/include/nlohmann/detail/input/json_sax.hpp index a0ffdc669..8bbaa9c9d 100644 --- a/include/nlohmann/detail/input/json_sax.hpp +++ b/include/nlohmann/detail/input/json_sax.hpp @@ -277,17 +277,23 @@ class json_sax_dom_parser : public json_sax } else { - assert(ref_stack.back()->is_array() or ref_stack.back()->is_object()); - if (ref_stack.back()->is_array()) + switch (ref_stack.back()->m_type) { - ref_stack.back()->m_value.array->push_back(BasicJsonType(std::forward(v))); - return &(ref_stack.back()->m_value.array->back()); - } - else - { - assert(object_element); - *object_element = BasicJsonType(std::forward(v)); - return object_element; + case value_t::array: + { + ref_stack.back()->m_value.array->push_back(BasicJsonType(std::forward(v))); + return &(ref_stack.back()->m_value.array->back()); + } + + case value_t::object: + { + assert(object_element); + *object_element = BasicJsonType(std::forward(v)); + return object_element; + } + + default: + assert(false); // LCOV_EXCL_LINE } } } diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 639d64001..503029031 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -3413,17 +3413,23 @@ class json_sax_dom_parser : public json_sax } else { - assert(ref_stack.back()->is_array() or ref_stack.back()->is_object()); - if (ref_stack.back()->is_array()) + switch (ref_stack.back()->m_type) { - ref_stack.back()->m_value.array->push_back(BasicJsonType(std::forward(v))); - return &(ref_stack.back()->m_value.array->back()); - } - else - { - assert(object_element); - *object_element = BasicJsonType(std::forward(v)); - return object_element; + case value_t::array: + { + ref_stack.back()->m_value.array->push_back(BasicJsonType(std::forward(v))); + return &(ref_stack.back()->m_value.array->back()); + } + + case value_t::object: + { + assert(object_element); + *object_element = BasicJsonType(std::forward(v)); + return object_element; + } + + default: + assert(false); // LCOV_EXCL_LINE } } }