mirror of
https://github.com/nlohmann/json.git
synced 2025-08-09 05:22:48 +03:00
Set parents after insert call (#4537)
* 🐛 set parents after insert call * 🚨 fix warning
This commit is contained in:
@@ -3402,6 +3402,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);
|
m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);
|
||||||
|
set_parents();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief updates a JSON object from another object, overwriting existing keys
|
/// @brief updates a JSON object from another object, overwriting existing keys
|
||||||
|
@@ -22982,6 +22982,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);
|
m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);
|
||||||
|
set_parents();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief updates a JSON object from another object, overwriting existing keys
|
/// @brief updates a JSON object from another object, overwriting existing keys
|
||||||
|
@@ -242,4 +242,24 @@ TEST_CASE("Regression tests for extended diagnostics")
|
|||||||
json const j_arr_copy = j_arr;
|
json const j_arr_copy = j_arr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("Regression test for issue #3915 - JSON_DIAGNOSTICS trigger assertion")
|
||||||
|
{
|
||||||
|
json j = json::object();
|
||||||
|
j["root"] = "root_str";
|
||||||
|
|
||||||
|
json jj = json::object();
|
||||||
|
jj["child"] = json::object();
|
||||||
|
|
||||||
|
// If do not push anything in object, then no assert will be produced
|
||||||
|
jj["child"]["prop1"] = "prop1_value";
|
||||||
|
|
||||||
|
// Push all properties of child in parent
|
||||||
|
j.insert(jj.at("child").begin(), jj.at("child").end());
|
||||||
|
|
||||||
|
// Here assert is generated when construct new json
|
||||||
|
const json k(j);
|
||||||
|
|
||||||
|
CHECK(k.dump() == "{\"prop1\":\"prop1_value\",\"root\":\"root_str\"}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user