From e4becdc3d310a0dd1a6d34d0796a52b21dedeb2d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 17 Jun 2014 15:30:34 +0200 Subject: Move deletion of the QDrag object into QDragManager::drag(). The QDrag objects were apparently leaking on all platforms other than XCB. Task-number: QTBUG-39651 Change-Id: I09efcd250c1f42eb385e9d5779be7af6b9b59376 Reviewed-by: Joerg Bornemann Reviewed-by: Tim Jenssen --- src/gui/kernel/qdnd.cpp | 1 + src/plugins/platforms/xcb/qxcbdrag.cpp | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gui/kernel/qdnd.cpp b/src/gui/kernel/qdnd.cpp index d34a135eb7..328ca389ed 100644 --- a/src/gui/kernel/qdnd.cpp +++ b/src/gui/kernel/qdnd.cpp @@ -142,6 +142,7 @@ Qt::DropAction QDragManager::drag(QDrag *o) QGuiApplicationPrivate::instance()->notifyDragStarted(o); const Qt::DropAction result = m_platformDrag->drag(m_object); m_object = 0; + o->deleteLater(); return result; } diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp index bcadcd1f02..bd28548cba 100644 --- a/src/plugins/platforms/xcb/qxcbdrag.cpp +++ b/src/plugins/platforms/xcb/qxcbdrag.cpp @@ -1010,9 +1010,6 @@ void QXcbDrag::handleFinished(const xcb_client_message_event_t *event) // current_target = 0; // current_proxy_target = 0; - if (t.drag) - t.drag->deleteLater(); - // current_target = target; // current_proxy_target = proxy_target; // current_embedding_widget = embedding_widget; -- cgit v1.2.3