xkb: Ensure that XKB device private won't leak on device disconnect.
Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
18413f5508
commit
40e56d3453
|
@ -68,20 +68,13 @@ xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc,
|
||||||
Bool
|
Bool
|
||||||
XkbInitPrivates(void)
|
XkbInitPrivates(void)
|
||||||
{
|
{
|
||||||
return dixRegisterPrivateKey(&xkbDevicePrivateKeyRec, PRIVATE_DEVICE, 0);
|
return dixRegisterPrivateKey(&xkbDevicePrivateKeyRec, PRIVATE_DEVICE, sizeof(xkbDeviceInfoRec));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc)
|
XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc)
|
||||||
{
|
{
|
||||||
xkbDeviceInfoPtr xkbPrivPtr;
|
xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(device);
|
||||||
|
|
||||||
xkbPrivPtr = (xkbDeviceInfoPtr) calloc(1, sizeof(xkbDeviceInfoRec));
|
|
||||||
if (!xkbPrivPtr)
|
|
||||||
return;
|
|
||||||
xkbPrivPtr->unwrapProc = NULL;
|
|
||||||
|
|
||||||
dixSetPrivate(&device->devPrivates, xkbDevicePrivateKey, xkbPrivPtr);
|
|
||||||
WRAP_PROCESS_INPUT_PROC(device, xkbPrivPtr, proc, xkbUnwrapProc);
|
WRAP_PROCESS_INPUT_PROC(device, xkbPrivPtr, proc, xkbUnwrapProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue