aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlengine.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-12-23 01:00:12 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-12-23 01:00:12 +0100
commitdca7fc3e3a0fe428ed97762a44c15e83607e6d28 (patch)
tree97d33fe2bec52dcbb6c991712bfe39411fbddb91 /src/qml/qml/qqmlengine.cpp
parent03b084e6397b990c69028dc2bbf3226e7339c4a5 (diff)
parentc57681bc376d1d912d23b044c48932fa8f7816d7 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r--src/qml/qml/qqmlengine.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index c400e9239b..6db43a50eb 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -1518,7 +1518,9 @@ void QQmlEngine::setContextForObject(QObject *object, QQmlContext *context)
}
QQmlContextData *contextData = QQmlContextData::get(context);
- contextData->addObject(object);
+ Q_ASSERT(data->context == nullptr);
+ data->context = contextData;
+ contextData->addObject(data);
}
/*!
@@ -1882,6 +1884,8 @@ void QQmlData::destroyed(QObject *object)
nextContextObject->prevContextObject = prevContextObject;
if (prevContextObject)
*prevContextObject = nextContextObject;
+ else if (outerContext && outerContext->contextObjects == this)
+ outerContext->contextObjects = nextContextObject;
QQmlAbstractBinding *binding = bindings;
while (binding) {