[PATCH 1/2] input: allow NULL as XkbRMVLOSet in InitKeyboardDeviceStruct.

Peter Hutterer peter.hutterer at who-t.net
Tue Apr 14 22:40:24 PDT 2009


Virtually all callers use
    XkbGetRulesDefault(&rmlvo);
    InitKeyboardDeviceStruct(..., rmlvo);

Let's save them the trouble and accept NULL as a hint to take the
default RMLVO.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 Xi/exevents.c               |   13 +++----------
 dix/devices.c               |    4 +---
 hw/vfb/InitInput.c          |    4 +---
 hw/xnest/Keyboard.c         |    9 +--------
 hw/xquartz/quartzKeyboard.c |    4 +---
 xkb/xkbInit.c               |   10 +++++++++-
 6 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/Xi/exevents.c b/Xi/exevents.c
index 4788665..cfae57d 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -226,11 +226,7 @@ DeepCopyFeedbackClasses(DeviceIntPtr from, DeviceIntPtr to)
 
             to->kbdfeed = classes->kbdfeed;
             if (!to->kbdfeed)
-            {
-                XkbRMLVOSet rmlvo;
-                XkbGetRulesDflts(&rmlvo);
-                InitKeyboardDeviceStruct(to, &rmlvo, NULL, NULL);
-            }
+                InitKeyboardDeviceStruct(to, NULL, NULL, NULL);
         }
 
         k = &to->kbdfeed;
@@ -473,11 +469,8 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to)
                                        UnusedClassesPrivateKey);
             to->key = classes->key;
             if (!to->key)
-            {
-                XkbRMLVOSet rmlvo;
-                XkbGetRulesDflts(&rmlvo);
-                InitKeyboardDeviceStruct(to, &rmlvo, NULL, NULL);
-            } else
+                InitKeyboardDeviceStruct(to, NULL, NULL, NULL);
+            else
                 classes->key = NULL;
         }
 
diff --git a/dix/devices.c b/dix/devices.c
index b9d1c85..d14eddd 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -471,12 +471,10 @@ CoreKeyboardCtl(DeviceIntPtr pDev, KeybdCtrl *ctrl)
 static int
 CoreKeyboardProc(DeviceIntPtr pDev, int what)
 {
-    XkbRMLVOSet rmlvo;
 
     switch (what) {
     case DEVICE_INIT:
-        XkbGetRulesDflts(&rmlvo);
-        if (!InitKeyboardDeviceStruct(pDev, &rmlvo, CoreKeyboardBell,
+        if (!InitKeyboardDeviceStruct(pDev, NULL, CoreKeyboardBell,
                                       CoreKeyboardCtl))
         {
             ErrorF("Keyboard initialization failed. This could be a missing "
diff --git a/hw/vfb/InitInput.c b/hw/vfb/InitInput.c
index aa90252..4c8c996 100644
--- a/hw/vfb/InitInput.c
+++ b/hw/vfb/InitInput.c
@@ -66,13 +66,11 @@ static int
 vfbKeybdProc(DeviceIntPtr pDevice, int onoff)
 {
     DevicePtr pDev = (DevicePtr)pDevice;
-    XkbRMLVOSet rmlvo;
 
     switch (onoff)
     {
     case DEVICE_INIT:
-        XkbGetRulesDflts(&rmlvo);
-	InitKeyboardDeviceStruct(pDevice, &rmlvo, NULL, NULL);
+	InitKeyboardDeviceStruct(pDevice, NULL, NULL, NULL);
         break;
     case DEVICE_ON:
 	pDev->on = TRUE;
diff --git a/hw/xnest/Keyboard.c b/hw/xnest/Keyboard.c
index 8404c8b..f94e260 100644
--- a/hw/xnest/Keyboard.c
+++ b/hw/xnest/Keyboard.c
@@ -121,7 +121,6 @@ xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
   int i;
   XKeyboardState values;
   XkbDescPtr xkb;
-  XkbRMLVOSet rmlvo;
   int op, event, error, major, minor;
 
   switch (onoff)
@@ -165,13 +164,7 @@ xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
       }
       XkbGetControls(xnestDisplay, XkbAllControlsMask, xkb);
 
-      rmlvo.rules = XKB_DFLT_RULES;
-      rmlvo.model = XKB_DFLT_MODEL;
-      rmlvo.layout = XKB_DFLT_LAYOUT;
-      rmlvo.variant = XKB_DFLT_VARIANT;
-      rmlvo.options = XKB_DFLT_OPTIONS;
-
-      InitKeyboardDeviceStruct(pDev, &rmlvo,
+      InitKeyboardDeviceStruct(pDev, NULL,
 			       xnestBell, xnestChangeKeyboardControl);
       XkbDDXChangeControls(pDev, xkb->ctrls, xkb->ctrls);
       XkbFreeKeyboard(xkb, 0, False);
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index 823c2e6..2b8cb13 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -317,7 +317,6 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
     XkbComponentNamesRec names;
     CFIndex value;
     BOOL ok;
-    XkbRMLVOSet rmlvo;
 
     // Open a shared connection to the HID System.
     // Note that the Event Status Driver is really just a wrapper
@@ -328,8 +327,7 @@ void DarwinKeyboardInit(DeviceIntPtr pDev) {
 
     bzero(&names, sizeof(names));
 
-    XkbGetRulesDflts(&rmlvo);
-    InitKeyboardDeviceStruct(pDev, &rmlvo, QuartzBell,
+    InitKeyboardDeviceStruct(pDev, NULL, QuartzBell,
                              DarwinChangeKeyboardControl);
 
     /* Get our key repeat settings from GlobalPreferences */
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index 1f5f8dc..2e75612 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -474,10 +474,18 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
     XkbSrvLedInfoPtr sli;
     XkbChangesRec changes;
     XkbEventCauseRec cause;
+    XkbRMLVOSet rmlvo_dflts = { NULL };
 
-    if (dev->key || dev->kbdfeed || !rmlvo)
+    if (dev->key || dev->kbdfeed)
 	return False;
 
+    if (!rmlvo)
+    {
+        rmlvo = &rmlvo_dflts;
+        XkbGetRulesDflts(rmlvo);
+    }
+
+
     memset(&changes, 0, sizeof(changes));
     XkbSetCauseUnknown(&cause);
 
-- 
1.6.2.2.447.g4afa7


More information about the xorg-devel mailing list