xkb: Add XkbFreeRMLVOSet helper function.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dan Nicholson <dbn.lists@gmail.com>
This commit is contained in:
parent
ad76656f88
commit
62d2fb6863
|
@ -858,6 +858,11 @@ extern _X_EXPORT void XkbGetRulesDflts(
|
|||
XkbRMLVOSet * /* rmlvo */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void XkbFreeRMLVOSet(
|
||||
XkbRMLVOSet * /* rmlvo */,
|
||||
Bool /* freeRMLVO */
|
||||
);
|
||||
|
||||
extern _X_EXPORT void XkbSetRulesDflts(
|
||||
XkbRMLVOSet * /* rmlvo */
|
||||
);
|
||||
|
|
|
@ -136,6 +136,24 @@ XkbGetRulesDflts(XkbRMLVOSet *rmlvo)
|
|||
rmlvo->options = strdup(rmlvo->options);
|
||||
}
|
||||
|
||||
void
|
||||
XkbFreeRMLVOSet(XkbRMLVOSet *rmlvo, Bool freeRMLVO)
|
||||
{
|
||||
if (!rmlvo)
|
||||
return;
|
||||
|
||||
xfree(rmlvo->rules);
|
||||
xfree(rmlvo->model);
|
||||
xfree(rmlvo->layout);
|
||||
xfree(rmlvo->variant);
|
||||
xfree(rmlvo->options);
|
||||
|
||||
if (freeRMLVO)
|
||||
xfree(rmlvo);
|
||||
else
|
||||
memset(rmlvo, 0, sizeof(XkbRMLVOSet));
|
||||
}
|
||||
|
||||
static Bool
|
||||
XkbWriteRulesProp(ClientPtr client, pointer closure)
|
||||
{
|
||||
|
@ -595,17 +613,7 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
|
|||
|
||||
XkbSetRulesDflts(rmlvo);
|
||||
XkbSetRulesUsed(rmlvo);
|
||||
|
||||
if (rmlvo_dflts.rules)
|
||||
xfree(rmlvo_dflts.rules);
|
||||
if (rmlvo_dflts.model)
|
||||
xfree(rmlvo_dflts.model);
|
||||
if (rmlvo_dflts.layout)
|
||||
xfree(rmlvo_dflts.layout);
|
||||
if (rmlvo_dflts.variant)
|
||||
xfree(rmlvo_dflts.variant);
|
||||
if (rmlvo_dflts.options)
|
||||
xfree(rmlvo_dflts.options);
|
||||
XkbFreeRMLVOSet(&rmlvo_dflts, FALSE);
|
||||
|
||||
return TRUE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user