mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-22 20:35:43 +00:00
dix: Add FreeDeviceClass and FreeFeedbackClass for centralised xfree.
Ensures that we only have one way of freeing a device class to avoid leaks in ChangeMasterDeviceClasses and other places.
This commit is contained in:
parent
18833d648f
commit
b40646dc10
4 changed files with 190 additions and 123 deletions
|
|
@ -84,6 +84,7 @@ typedef unsigned long Leds;
|
|||
typedef struct _OtherClients *OtherClientsPtr;
|
||||
typedef struct _InputClients *InputClientsPtr;
|
||||
typedef struct _DeviceIntRec *DeviceIntPtr;
|
||||
typedef struct _ClassesRec *ClassesPtr;
|
||||
|
||||
typedef struct _EventList {
|
||||
xEvent* event;
|
||||
|
|
@ -484,6 +485,9 @@ extern int AllocMasterDevice(char* name,
|
|||
DeviceIntPtr* keybd);
|
||||
extern void DeepCopyDeviceClasses(DeviceIntPtr from,
|
||||
DeviceIntPtr to);
|
||||
extern void FreeDeviceClass(int type, pointer* class);
|
||||
extern void FreeFeedbackClass(int type, pointer* class);
|
||||
extern void FreeAllDeviceClasses(ClassesPtr classes);
|
||||
|
||||
/* Window/device based access control */
|
||||
extern Bool ACRegisterClient(ClientPtr client);
|
||||
|
|
|
|||
|
|
@ -283,6 +283,22 @@ typedef struct _LedFeedbackClassRec {
|
|||
} LedFeedbackClassRec;
|
||||
|
||||
|
||||
typedef struct _ClassesRec {
|
||||
KeyClassPtr key;
|
||||
ValuatorClassPtr valuator;
|
||||
ButtonClassPtr button;
|
||||
FocusClassPtr focus;
|
||||
ProximityClassPtr proximity;
|
||||
AbsoluteClassPtr absolute;
|
||||
KbdFeedbackPtr kbdfeed;
|
||||
PtrFeedbackPtr ptrfeed;
|
||||
IntegerFeedbackPtr intfeed;
|
||||
StringFeedbackPtr stringfeed;
|
||||
BellFeedbackPtr bell;
|
||||
LedFeedbackPtr leds;
|
||||
} ClassesRec;
|
||||
|
||||
|
||||
/**
|
||||
* Sprite information for a device.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue