summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-11-16 12:12:41 +1030
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-11-16 12:12:41 +1030
commitbe3321c2e9fad228a9ee5fef47680a47bc9e39a4 (patch)
treea41eb51bc2b605e9d43fc5b13a91255c6274aa79
parent3c39dd19ec2a53b8854279e3b03131098031473a (diff)
dix: Free both current classes and original classes when closing an MD.
-rw-r--r--dix/devices.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/dix/devices.c b/dix/devices.c
index bc3313c6f..7512529e8 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -817,10 +817,12 @@ CloseDevice(DeviceIntPtr dev)
xfree(dev->name);
if (dev->isMaster)
+ {
classes = (ClassesPtr)dev->devPrivates[MasterDevClassesPrivIdx].ptr;
- else
- classes = (ClassesPtr)&dev->key;
+ FreeAllDeviceClasses(classes);
+ }
+ classes = (ClassesPtr)&dev->key;
FreeAllDeviceClasses(classes);
#ifdef XKB