diff options
author | Joni Poikelin <joni.poikelin@digia.com> | 2014-06-12 10:28:23 +0300 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-06-20 15:56:08 +0200 |
commit | e98c461d43ea07c73898c93debe9285029ba0416 (patch) | |
tree | a036004ed316b92a59aecc2eb5c082ed48ceee3c | |
parent | 11161bbfadd0056466fc414ed659d08a4a0fe492 (diff) |
XCB: Fix leak with touch devices
Task-number: QTBUG-39596
Change-Id: I4225d5a1ab4939280640b35d30c283f056a56519
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp index c296618c44..a574dcae6c 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp @@ -228,6 +228,11 @@ void QXcbConnection::xi2SetupDevices() void QXcbConnection::finalizeXInput2() { + foreach (XInput2DeviceData *dev, m_touchDevices) { + if (dev->xiDeviceInfo) + XIFreeDeviceInfo(dev->xiDeviceInfo); + delete dev; + } } void QXcbConnection::xi2Select(xcb_window_t window) @@ -393,6 +398,7 @@ XInput2DeviceData *QXcbConnection::deviceForId(int id) m_touchDevices[id] = dev; } else { m_touchDevices.remove(id); + XIFreeDeviceInfo(dev->xiDeviceInfo); delete dev; dev = 0; } |