summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoni Poikelin <joni.poikelin@digia.com>2014-06-12 10:28:23 +0300
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-06-20 15:56:08 +0200
commite98c461d43ea07c73898c93debe9285029ba0416 (patch)
treea036004ed316b92a59aecc2eb5c082ed48ceee3c
parent11161bbfadd0056466fc414ed659d08a4a0fe492 (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.cpp6
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;
}