aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-03-20 09:25:08 +0100
committerUlf Hermann <ulf.hermann@qt.io>2020-03-20 09:48:51 +0100
commit4656ea5252974f60a05ee2150e1e8eace4e7542f (patch)
treecceffc52c9d4610b0f80487424a8ef4b8c7bfbaa /src/quick
parentf726d237277de0f4c8f276d20a5bb1b6a8cd007c (diff)
QQuickView: Don't leak root object in error case
Change-Id: I506c944fe3a472b3950d66167089054e91dd942c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/qquickview.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp
index 84488dcaca..5b3b954460 100644
--- a/src/quick/items/qquickview.cpp
+++ b/src/quick/items/qquickview.cpp
@@ -486,7 +486,9 @@ void QQuickView::continueExecute()
return;
}
- QObject *obj = d->initialProperties.empty() ? d->component->create() : d->component->createWithInitialProperties(d->initialProperties);
+ QScopedPointer<QObject> obj(d->initialProperties.empty()
+ ? d->component->create()
+ : d->component->createWithInitialProperties(d->initialProperties));
if (d->component->isError()) {
const QList<QQmlError> errorList = d->component->errors();
@@ -498,7 +500,7 @@ void QQuickView::continueExecute()
return;
}
- d->setRootObject(obj);
+ d->setRootObject(obj.take());
emit statusChanged(status());
}