summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbkeyboard.cpp
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2014-09-20 18:07:32 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2014-09-25 10:52:11 +0200
commit5c2d7b1635904da257938af740af024928b8ce5e (patch)
tree5926052c5395cc8b6e581e807bd59ecf16dc3575 /src/plugins/platforms/xcb/qxcbkeyboard.cpp
parentb5ae9d8efec8e71ca52db7a142195c2ee37e68f9 (diff)
XCB: fix a memory leak
An early return didn't deallocate a xkb_state struct. Change-Id: I158ffc67030403636aceab985cc605888a31804b Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbkeyboard.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
index af75b650d1..a873ba97d7 100644
--- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp
@@ -852,8 +852,10 @@ QList<int> QXcbKeyboard::possibleKeys(const QKeyEvent *event) const
baseLayout, latchedLayout, lockedLayout);
xkb_keysym_t sym = xkb_state_key_get_one_sym(kb_state, event->nativeScanCode());
- if (sym == XKB_KEY_NoSymbol)
+ if (sym == XKB_KEY_NoSymbol) {
+ xkb_state_unref(kb_state);
return QList<int>();
+ }
QList<int> result;
int baseQtKey = keysymToQtKey(sym, modifiers, lookupString(kb_state, event->nativeScanCode()));