mirror of
https://github.com/nlohmann/json.git
synced 2026-07-11 04:55:10 +00:00
✍🏿️ add assertion for invariant in SAX-DOM parser (#3498)
This commit is contained in:
@@ -233,6 +233,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool key(string_t& val)
|
bool key(string_t& val)
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_object());
|
||||||
|
|
||||||
// add null at given key and store the reference for later
|
// add null at given key and store the reference for later
|
||||||
object_element = &(ref_stack.back()->m_value.object->operator[](val));
|
object_element = &(ref_stack.back()->m_value.object->operator[](val));
|
||||||
return true;
|
return true;
|
||||||
@@ -240,6 +243,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool end_object()
|
bool end_object()
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_object());
|
||||||
|
|
||||||
ref_stack.back()->set_parents();
|
ref_stack.back()->set_parents();
|
||||||
ref_stack.pop_back();
|
ref_stack.pop_back();
|
||||||
return true;
|
return true;
|
||||||
@@ -259,6 +265,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool end_array()
|
bool end_array()
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_array());
|
||||||
|
|
||||||
ref_stack.back()->set_parents();
|
ref_stack.back()->set_parents();
|
||||||
ref_stack.pop_back();
|
ref_stack.pop_back();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -6230,6 +6230,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool key(string_t& val)
|
bool key(string_t& val)
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_object());
|
||||||
|
|
||||||
// add null at given key and store the reference for later
|
// add null at given key and store the reference for later
|
||||||
object_element = &(ref_stack.back()->m_value.object->operator[](val));
|
object_element = &(ref_stack.back()->m_value.object->operator[](val));
|
||||||
return true;
|
return true;
|
||||||
@@ -6237,6 +6240,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool end_object()
|
bool end_object()
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_object());
|
||||||
|
|
||||||
ref_stack.back()->set_parents();
|
ref_stack.back()->set_parents();
|
||||||
ref_stack.pop_back();
|
ref_stack.pop_back();
|
||||||
return true;
|
return true;
|
||||||
@@ -6256,6 +6262,9 @@ class json_sax_dom_parser
|
|||||||
|
|
||||||
bool end_array()
|
bool end_array()
|
||||||
{
|
{
|
||||||
|
JSON_ASSERT(!ref_stack.empty());
|
||||||
|
JSON_ASSERT(ref_stack.back()->is_array());
|
||||||
|
|
||||||
ref_stack.back()->set_parents();
|
ref_stack.back()->set_parents();
|
||||||
ref_stack.pop_back();
|
ref_stack.pop_back();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user