diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-08-24 14:09:17 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-09-11 12:45:21 +0900 |
commit | 60fdee32bdacab0b2ca0fd50c1f7a4dabf190fc0 (patch) | |
tree | f0cf81a39c7315ba313c8af9d4fe545be69b6534 /src/libudev/libudev-enumerate.c | |
parent | 2b19953a0da315220c00ed9a5a48bf78c9517d2c (diff) | |
download | systemd-60fdee32bdacab0b2ca0fd50c1f7a4dabf190fc0.tar.gz |
libudev-enumerate: use structured initializer
Diffstat (limited to 'src/libudev/libudev-enumerate.c')
-rw-r--r-- | src/libudev/libudev-enumerate.c | 26 |
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) { |