diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-11-15 11:31:43 +1030 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-11-15 11:31:43 +1030 |
commit | b05246696d14bd35aa53b49302707b51206c72a6 (patch) | |
tree | 4f42fd3e09ce8886f370059b947389b6b24d0805 /Xi/exevents.c | |
parent | c758e5a664a52045ad419340044beebb6774a336 (diff) |
Xi: free XkbSrvLedInfos as well when freeing an MD's device classes.
Diffstat (limited to 'Xi/exevents.c')
-rw-r--r-- | Xi/exevents.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index 1bf6c5179..158f523f0 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -278,14 +278,23 @@ ChangeMasterDeviceClasses(DeviceIntPtr device, #endif xfree(master->key); master->key = NULL; xfree(master->valuator); master->valuator = NULL; + /* XXX: xkb_acts needs to be freed for master->button */ xfree(master->button); master->button = NULL; xfree(master->focus); master->focus = NULL; xfree(master->proximity); master->proximity = NULL; xfree(master->absolute); master->absolute = NULL; +#ifdef XKB + if (master->kbdfeed && master->kbdfeed->xkb_sli) + XkbFreeSrvLedInfo(master->kbdfeed->xkb_sli); +#endif xfree(master->kbdfeed); master->kbdfeed = NULL; xfree(master->ptrfeed); master->ptrfeed = NULL; xfree(master->stringfeed); master->stringfeed = NULL; xfree(master->bell); master->bell = NULL; +#ifdef XKB + if (master->leds && master->leds->xkb_sli) + XkbFreeSrvLedInfo(master->leds->xkb_sli); +#endif xfree(master->leds); master->leds = NULL; xfree(master->intfeed); master->intfeed = NULL; |