diff options
Diffstat (limited to 'src/corelib/json/qjsonobject.cpp')
-rw-r--r-- | src/corelib/json/qjsonobject.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/json/qjsonobject.cpp b/src/corelib/json/qjsonobject.cpp index e595753fec..1bdd872e78 100644 --- a/src/corelib/json/qjsonobject.cpp +++ b/src/corelib/json/qjsonobject.cpp @@ -390,13 +390,14 @@ QJsonValue QJsonObject::take(const QString &key) if (!keyExists) return QJsonValue(QJsonValue::Undefined); - QJsonPrivate::Entry *e = o->entryAt(index); + QJsonValue v(d, o, o->entryAt(index)->value); + detach(); o->removeItems(index, 1); ++d->compactionCounter; if (d->compactionCounter > 32u && d->compactionCounter >= unsigned(o->length) / 2u) compact(); - return QJsonValue(d, o, e->value); + return v; } /*! |