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:
Rami Ylimäki 2011-03-04 17:55:31 +02:00 committed by Peter Hutterer
parent 18413f5508
commit 40e56d3453

View File

@ -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);
} }