diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-03-20 09:25:08 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-03-20 09:48:51 +0100 |
commit | 4656ea5252974f60a05ee2150e1e8eace4e7542f (patch) | |
tree | cceffc52c9d4610b0f80487424a8ef4b8c7bfbaa /src | |
parent | f726d237277de0f4c8f276d20a5bb1b6a8cd007c (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')
-rw-r--r-- | src/quick/items/qquickview.cpp | 6 |
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()); } |