mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-21 20:26:45 +00:00
Replace some input devPrivates with regular struct fields
In the process, fixes a memory leak in CloseDevice, and an unchecked memory allocation in InitializePredictableAccelerationProperties. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net>
This commit is contained in:
parent
998e982b77
commit
65e961fcc1
6 changed files with 47 additions and 92 deletions
|
|
@ -94,9 +94,6 @@ Bool ShouldFreeInputMasks(WindowPtr /* pWin */ ,
|
|||
static Bool MakeInputMasks(WindowPtr /* pWin */
|
||||
);
|
||||
|
||||
/* Used to sture classes currently not in use by an MD */
|
||||
extern DevPrivateKey UnusedClassesPrivateKey;
|
||||
|
||||
/*
|
||||
* Only let the given client know of core events which will affect its
|
||||
* interpretation of input events, if the client's ClientPointer (or the
|
||||
|
|
@ -228,8 +225,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
|
||||
if (!to->intfeed)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->intfeed = classes->intfeed;
|
||||
}
|
||||
|
||||
|
|
@ -253,7 +249,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->intfeed && !from->intfeed)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->intfeed = to->intfeed;
|
||||
to->intfeed = NULL;
|
||||
}
|
||||
|
|
@ -264,8 +260,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
|
||||
if (!to->stringfeed)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->stringfeed = classes->stringfeed;
|
||||
}
|
||||
|
||||
|
|
@ -289,7 +284,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->stringfeed && !from->stringfeed)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->stringfeed = to->stringfeed;
|
||||
to->stringfeed = NULL;
|
||||
}
|
||||
|
|
@ -300,8 +295,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
|
||||
if (!to->bell)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->bell = classes->bell;
|
||||
}
|
||||
|
||||
|
|
@ -326,7 +320,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->bell && !from->bell)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->bell = to->bell;
|
||||
to->bell = NULL;
|
||||
}
|
||||
|
|
@ -337,8 +331,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
|
||||
if (!to->leds)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->leds = classes->leds;
|
||||
}
|
||||
|
||||
|
|
@ -365,7 +358,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->leds && !from->leds)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->leds = to->leds;
|
||||
to->leds = NULL;
|
||||
}
|
||||
|
|
@ -385,8 +378,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
|
||||
if (!to->kbdfeed)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
|
||||
to->kbdfeed = classes->kbdfeed;
|
||||
if (!to->kbdfeed)
|
||||
|
|
@ -417,7 +409,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->kbdfeed && !from->kbdfeed)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->kbdfeed = to->kbdfeed;
|
||||
to->kbdfeed = NULL;
|
||||
}
|
||||
|
|
@ -426,8 +418,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
{
|
||||
if (!to->key)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->key = classes->key;
|
||||
if (!to->key)
|
||||
InitKeyboardDeviceStruct(to, NULL, NULL, NULL);
|
||||
|
|
@ -439,7 +430,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->key && !from->key)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->key = to->key;
|
||||
to->key = NULL;
|
||||
}
|
||||
|
|
@ -476,8 +467,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
{
|
||||
WindowPtr *oldTrace;
|
||||
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->focus = classes->focus;
|
||||
if (!to->focus)
|
||||
{
|
||||
|
|
@ -500,7 +490,7 @@ DeepCopyKeyboardClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->focus)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->focus = to->focus;
|
||||
to->focus = NULL;
|
||||
}
|
||||
|
|
@ -518,8 +508,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
PtrFeedbackPtr *p, it;
|
||||
if (!to->ptrfeed)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->ptrfeed = classes->ptrfeed;
|
||||
}
|
||||
|
||||
|
|
@ -543,7 +532,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->ptrfeed && !from->ptrfeed)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->ptrfeed = to->ptrfeed;
|
||||
to->ptrfeed = NULL;
|
||||
}
|
||||
|
|
@ -553,8 +542,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
ValuatorClassPtr v;
|
||||
if (!to->valuator)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->valuator = classes->valuator;
|
||||
if (to->valuator)
|
||||
classes->valuator = NULL;
|
||||
|
|
@ -577,7 +565,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->valuator && !from->valuator)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->valuator = to->valuator;
|
||||
to->valuator = NULL;
|
||||
}
|
||||
|
|
@ -586,8 +574,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
{
|
||||
if (!to->button)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->button = classes->button;
|
||||
if (!to->button)
|
||||
{
|
||||
|
|
@ -617,7 +604,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->button && !from->button)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->button = to->button;
|
||||
to->button = NULL;
|
||||
}
|
||||
|
|
@ -626,8 +613,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
{
|
||||
if (!to->proximity)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->proximity = classes->proximity;
|
||||
if (!to->proximity)
|
||||
{
|
||||
|
|
@ -642,7 +628,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->proximity)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->proximity = to->proximity;
|
||||
to->proximity = NULL;
|
||||
}
|
||||
|
|
@ -651,8 +637,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
{
|
||||
if (!to->absolute)
|
||||
{
|
||||
classes = dixLookupPrivate(&to->devPrivates,
|
||||
UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
to->absolute = classes->absolute;
|
||||
if (!to->absolute)
|
||||
{
|
||||
|
|
@ -667,7 +652,7 @@ DeepCopyPointerClasses(DeviceIntPtr from, DeviceIntPtr to)
|
|||
} else if (to->absolute)
|
||||
{
|
||||
ClassesPtr classes;
|
||||
classes = dixLookupPrivate(&to->devPrivates, UnusedClassesPrivateKey);
|
||||
classes = to->unused_classes;
|
||||
classes->absolute = to->absolute;
|
||||
to->absolute = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue