👌 fix operator[]

This commit is contained in:
Niels Lohmann 2021-01-08 11:10:24 +01:00
parent ddc3bb1992
commit 0617bd248d
No known key found for this signature in database
GPG Key ID: 7F3CEA63AE251B69
2 changed files with 18 additions and 8 deletions

View File

@ -3659,11 +3659,16 @@ class basic_json
// fill up array with null values if given idx is outside range
if (idx >= m_value.array->size())
{
m_value.array->insert(m_value.array->end(),
idx - m_value.array->size() + 1,
basic_json());
#if JSON_DIAGNOSTICS
for (std::size_t i = idx + 1; i < m_value.array->size(); ++i)
// remember array size before resizing
const auto previous_size = m_value.array->size();
#endif
m_value.array->resize(idx + 1);
#if JSON_DIAGNOSTICS
// set parent for values added above
for (auto i = previous_size; i <= idx; ++i)
{
m_value.array->operator[](i).m_parent = this;
}

View File

@ -20295,11 +20295,16 @@ class basic_json
// fill up array with null values if given idx is outside range
if (idx >= m_value.array->size())
{
m_value.array->insert(m_value.array->end(),
idx - m_value.array->size() + 1,
basic_json());
#if JSON_DIAGNOSTICS
for (std::size_t i = idx + 1; i < m_value.array->size(); ++i)
// remember array size before resizing
const auto previous_size = m_value.array->size();
#endif
m_value.array->resize(idx + 1);
#if JSON_DIAGNOSTICS
// set parent for values added above
for (auto i = previous_size; i <= idx; ++i)
{
m_value.array->operator[](i).m_parent = this;
}