return list;
}
-struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *_name, const char *_value) {
+struct udev_list_entry* udev_list_entry_add(struct udev_list *list, const char *name, const char *value) {
_cleanup_(udev_list_entry_freep) struct udev_list_entry *entry = NULL;
- _cleanup_free_ char *name = NULL, *value = NULL;
assert(list);
- assert(_name);
+ assert(name);
- name = strdup(_name);
- if (!name)
+ entry = new0(struct udev_list_entry, 1);
+ if (!entry)
return NULL;
- if (_value) {
- value = strdup(_value);
- if (!value)
- return NULL;
- }
-
- entry = new(struct udev_list_entry, 1);
- if (!entry)
+ if (strdup_to(&entry->name, name) < 0)
return NULL;
- *entry = (struct udev_list_entry) {
- .name = TAKE_PTR(name),
- .value = TAKE_PTR(value),
- };
+ if (strdup_to(&entry->value, value) < 0)
+ return NULL;
if (list->unique) {
udev_list_entry_free(hashmap_get(list->unique_entries, entry->name));