chiark / gitweb /
terminal: free xkb state on keyboard destruction
authorDavid Herrmann <dh.herrmann@gmail.com>
Thu, 28 Aug 2014 10:21:33 +0000 (12:21 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Thu, 28 Aug 2014 10:45:51 +0000 (12:45 +0200)
Fix leaking the xkb-state during keyboard destruction, leaking lots of xkb
references into the wild.

src/libsystemd-terminal/idev-keyboard.c

index 7ab4db2cf79ed8ec71af8a25279cd76ae731ddf9..03f54bb74f32c6ad94432c2a19666157dfd47e2b 100644 (file)
@@ -550,6 +550,7 @@ int idev_keyboard_new(idev_device **out, idev_session *s, const char *name) {
 static void keyboard_free(idev_device *d) {
         idev_keyboard *k = keyboard_from_device(d);
 
 static void keyboard_free(idev_device *d) {
         idev_keyboard *k = keyboard_from_device(d);
 
+        xkb_state_unref(k->xkb_state);
         free(k->repdata.keyboard.codepoints);
         free(k->repdata.keyboard.keysyms);
         free(k->evdata.keyboard.codepoints);
         free(k->repdata.keyboard.codepoints);
         free(k->repdata.keyboard.keysyms);
         free(k->evdata.keyboard.codepoints);