OdevAttribute: config_odev_add_attribute: replace existing values
If an attribute already exists replace its value rather than adding a duplicate attribute with the new value to the list. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
10c64e8056
commit
350559dcdc
|
@ -163,11 +163,14 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
|
||||||
{
|
{
|
||||||
struct OdevAttribute *oa;
|
struct OdevAttribute *oa;
|
||||||
|
|
||||||
oa = malloc(sizeof(struct OdevAttribute));
|
oa = config_odev_find_attribute(attribs, attrib);
|
||||||
|
if (!oa)
|
||||||
|
oa = calloc(1, sizeof(struct OdevAttribute));
|
||||||
if (!oa)
|
if (!oa)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
oa->attrib_id = attrib;
|
oa->attrib_id = attrib;
|
||||||
|
free(oa->attrib_name);
|
||||||
oa->attrib_name = strdup(attrib_name);
|
oa->attrib_name = strdup(attrib_name);
|
||||||
xorg_list_append(&oa->member, &attribs->list);
|
xorg_list_append(&oa->member, &attribs->list);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user