summaryrefslogtreecommitdiff
path: root/src/libudev/libudev-enumerate.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-08-24 14:09:17 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-09-11 12:45:21 +0900
commit60fdee32bdacab0b2ca0fd50c1f7a4dabf190fc0 (patch)
treef0cf81a39c7315ba313c8af9d4fe545be69b6534 /src/libudev/libudev-enumerate.c
parent2b19953a0da315220c00ed9a5a48bf78c9517d2c (diff)
downloadsystemd-60fdee32bdacab0b2ca0fd50c1f7a4dabf190fc0.tar.gz
libudev-enumerate: use structured initializer
Diffstat (limited to 'src/libudev/libudev-enumerate.c')
-rw-r--r--src/libudev/libudev-enumerate.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c
index 6b0e5850bd..41318d0a8d 100644
--- a/src/libudev/libudev-enumerate.c
+++ b/src/libudev/libudev-enumerate.c
@@ -49,33 +49,37 @@ struct udev_enumerate {
* Returns: an enumeration context.
**/
_public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) {
- _cleanup_free_ struct udev_enumerate *udev_enumerate = NULL;
+ _cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
+ struct udev_enumerate *udev_enumerate;
int r;
- udev_enumerate = new0(struct udev_enumerate, 1);
- if (!udev_enumerate) {
- errno = ENOMEM;
+ r = sd_device_enumerator_new(&e);
+ if (r < 0) {
+ errno = -r;
return NULL;
}
- r = sd_device_enumerator_new(&udev_enumerate->enumerator);
+ r = sd_device_enumerator_allow_uninitialized(e);
if (r < 0) {
errno = -r;
return NULL;
}
- r = sd_device_enumerator_allow_uninitialized(udev_enumerate->enumerator);
- if (r < 0) {
- errno = -r;
+ udev_enumerate = new(struct udev_enumerate, 1);
+ if (!udev_enumerate) {
+ errno = ENOMEM;
return NULL;
}
- udev_enumerate->n_ref = 1;
- udev_enumerate->udev = udev;
+ *udev_enumerate = (struct udev_enumerate) {
+ .udev = udev,
+ .n_ref = 1,
+ .enumerator = TAKE_PTR(e),
+ };
udev_list_init(udev, &udev_enumerate->devices_list, false);
- return TAKE_PTR(udev_enumerate);
+ return udev_enumerate;
}
static struct udev_enumerate *udev_enumerate_free(struct udev_enumerate *udev_enumerate) {