diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-02-26 15:12:36 +1030 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-02-26 15:35:28 +1030 |
commit | 23ae68a4c74a2ec90b4130c37b0d0aec3f4082ce (patch) | |
tree | 088284e8aa85295127640c158fae9987eaea7651 /xkb/ddxLoad.c | |
parent | ce9fb2f8c4610016e49321018fc9b24729380afc (diff) |
dix: before copying the classes the first time, set the VCK's classes to NULL.
XkbFinishDeviceInit does the following:
xkbi->kbdProc= pXDev->kbdfeed->CtrlProc;
pXDev->kbdfeed->CtrlProc= XkbDDXKeybdCtrlProc;
If we directly copy the device classes for the VCK, pXDev->kbdfeed->CtrlProc
at the time of copying is still XbkDDXKeybdCtrlProc. So at some point
XkbDDXKeybdCtrlProc is called, and calls itself, and calls itself, and...
Setting the device's classes to NULL seems to fix things. The memory isn't
lost, it gets stored into the devPrivates and freed at device closing time.
Diffstat (limited to 'xkb/ddxLoad.c')
0 files changed, 0 insertions, 0 deletions