diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2019-03-04 10:53:17 +0100 |
---|---|---|
committer | Aapo Keskimolo <aapo.keskimolo@qt.io> | 2019-03-11 17:02:06 +0000 |
commit | a84acc963b6684e4aa91c4dff5acf47e5f6cd8d2 (patch) | |
tree | 3db9ca10a16b5052a2f206edfc7a87e8162b2783 /src/quick/items/qquickitemgrabresult.cpp | |
parent | c911349b8bdcc7f798091eb6acd20395883b2000 (diff) |
Fix leaking of QML QQuickItemGrabResult objects
If QQuickItem::grabToImage is called from QML,
QQuickItemGrabResult is created but was never deleted.
Adding a deleteLater() right after dispatching the callback
ensures that QQuickItemGrabResult objects are deleted.
Task-number: QTBUG-73723
Change-Id: Ifda85599098f2b679ae5f22e1d47a73962ed0a85
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickitemgrabresult.cpp')
-rw-r--r-- | src/quick/items/qquickitemgrabresult.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquickitemgrabresult.cpp b/src/quick/items/qquickitemgrabresult.cpp index b45cb09c4b..f298803c7f 100644 --- a/src/quick/items/qquickitemgrabresult.cpp +++ b/src/quick/items/qquickitemgrabresult.cpp @@ -226,10 +226,12 @@ bool QQuickItemGrabResult::event(QEvent *e) Q_D(QQuickItemGrabResult); if (e->type() == Event_Grab_Completed) { // JS callback - if (d->qmlEngine && d->callback.isCallable()) + if (d->qmlEngine && d->callback.isCallable()) { d->callback.call(QJSValueList() << d->qmlEngine->newQObject(this)); - else + deleteLater(); + } else { Q_EMIT ready(); + } return true; } return QObject::event(e); |