diff --git a/config/config.c b/config/config.c index 46f2532ec..def7f16ca 100644 --- a/config/config.c +++ b/config/config.c @@ -132,10 +132,7 @@ config_odev_allocate_attribute_list(void) { struct OdevAttributes *attriblist; - attriblist = malloc(sizeof(struct OdevAttributes)); - if (!attriblist) - return NULL; - + attriblist = XNFalloc(sizeof(struct OdevAttributes)); xorg_list_init(&attriblist->list); return attriblist; } @@ -168,10 +165,7 @@ config_odev_find_or_add_attribute(struct OdevAttributes *attribs, int attrib) if (oa) return oa; - oa = calloc(1, sizeof(struct OdevAttribute)); - if (!oa) - return oa; - + oa = XNFcalloc(sizeof(struct OdevAttribute)); oa->attrib_id = attrib; xorg_list_append(&oa->member, &attribs->list); @@ -185,11 +179,8 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib, struct OdevAttribute *oa; oa = config_odev_find_or_add_attribute(attribs, attrib); - if (!oa) - return FALSE; - free(oa->attrib_name); - oa->attrib_name = strdup(attrib_name); + oa->attrib_name = XNFstrdup(attrib_name); oa->attrib_type = ODEV_ATTRIB_STRING; return TRUE; } @@ -201,9 +192,6 @@ config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib, struct OdevAttribute *oa; oa = config_odev_find_or_add_attribute(attribs, attrib); - if (!oa) - return FALSE; - oa->attrib_value = attrib_value; oa->attrib_type = ODEV_ATTRIB_INT; return TRUE; diff --git a/hw/xfree86/common/xf86platformBus.h b/hw/xfree86/common/xf86platformBus.h index 78b5a5bea..5dee4e0e0 100644 --- a/hw/xfree86/common/xf86platformBus.h +++ b/hw/xfree86/common/xf86platformBus.h @@ -54,11 +54,12 @@ xf86_add_platform_device(struct OdevAttributes *attribs, Bool unowned); extern int xf86_remove_platform_device(int dev_index); extern Bool +xf86_get_platform_device_unowned(int index); +/* Note starting with xserver 1.16 these 2 functions never fail */ +extern Bool xf86_add_platform_device_attrib(int index, int attrib_id, char *attrib_str); extern Bool xf86_add_platform_device_int_attrib(int index, int attrib_id, int attrib_value); -extern Bool -xf86_get_platform_device_unowned(int index); extern int xf86platformAddDevice(int index); diff --git a/include/hotplug.h b/include/hotplug.h index 1d9364eee..cefc164ae 100644 --- a/include/hotplug.h +++ b/include/hotplug.h @@ -48,12 +48,14 @@ struct OdevAttributes { struct xorg_list list; }; +/* Note starting with xserver 1.16 this function never fails */ struct OdevAttributes * config_odev_allocate_attribute_list(void); void config_odev_free_attribute_list(struct OdevAttributes *attribs); +/* Note starting with xserver 1.16 this function never fails */ Bool config_odev_add_attribute(struct OdevAttributes *attribs, int attrib, const char *attrib_name); @@ -61,6 +63,7 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib, char * config_odev_get_attribute(struct OdevAttributes *attribs, int attrib_id); +/* Note starting with xserver 1.16 this function never fails */ Bool config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib, int attrib_value);