diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2018-10-23 18:06:55 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2018-11-28 11:19:31 +0000 |
commit | 4213f239361e042ae5a053e3eaa87931b6696caf (patch) | |
tree | ca7e6cce2c2f49a0fe186113befaa2ccca0de48a | |
parent | 9e1cb252e0c2628c238150250670a55bd479846c (diff) |
xcb: Fix leaking events on destroy
This patch amends 243c3044b647357ca6df79ac1497ae43de957d31
Change-Id: Ieeebb1e2b94d7c191bf80a1f439c826c406a0c08
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
-rw-r--r-- | src/plugins/platforms/xcb/qxcbeventqueue.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbeventqueue.cpp b/src/plugins/platforms/xcb/qxcbeventqueue.cpp index 862f68764b..f6158d3127 100644 --- a/src/plugins/platforms/xcb/qxcbeventqueue.cpp +++ b/src/plugins/platforms/xcb/qxcbeventqueue.cpp @@ -105,7 +105,8 @@ QXcbEventQueue::~QXcbEventQueue() wait(); } - while (xcb_generic_event_t *event = takeFirst()) + flushBufferedEvents(); + while (xcb_generic_event_t *event = takeFirst(QEventLoop::AllEvents)) free(event); if (m_head && m_head->fromHeap) @@ -219,6 +220,8 @@ void QXcbEventQueue::run() tail->next = qXcbEventNodeFactory(event); tail = tail->next; m_tail.store(tail, std::memory_order_release); + } else { + free(event); } }; |