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 */
|
XkbRMLVOSet * /* rmlvo */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
extern _X_EXPORT void XkbFreeRMLVOSet(
|
||||||
|
XkbRMLVOSet * /* rmlvo */,
|
||||||
|
Bool /* freeRMLVO */
|
||||||
|
);
|
||||||
|
|
||||||
extern _X_EXPORT void XkbSetRulesDflts(
|
extern _X_EXPORT void XkbSetRulesDflts(
|
||||||
XkbRMLVOSet * /* rmlvo */
|
XkbRMLVOSet * /* rmlvo */
|
||||||
);
|
);
|
||||||
|
|
|
@ -136,6 +136,24 @@ XkbGetRulesDflts(XkbRMLVOSet *rmlvo)
|
||||||
rmlvo->options = strdup(rmlvo->options);
|
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
|
static Bool
|
||||||
XkbWriteRulesProp(ClientPtr client, pointer closure)
|
XkbWriteRulesProp(ClientPtr client, pointer closure)
|
||||||
{
|
{
|
||||||
|
@ -595,17 +613,7 @@ InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
|
||||||
|
|
||||||
XkbSetRulesDflts(rmlvo);
|
XkbSetRulesDflts(rmlvo);
|
||||||
XkbSetRulesUsed(rmlvo);
|
XkbSetRulesUsed(rmlvo);
|
||||||
|
XkbFreeRMLVOSet(&rmlvo_dflts, FALSE);
|
||||||
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);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue