diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-08-28 13:07:48 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-09-11 12:45:21 +0900 |
commit | 3c6ac219296aaba8ef99644b1185326ed114392d (patch) | |
tree | ea1936f89e4bc940588e9b1fa1631605e7cbcceb /src/libudev/libudev-enumerate.c | |
parent | 50d2158901fcc7207be1a50643772a8ba229742c (diff) | |
download | systemd-3c6ac219296aaba8ef99644b1185326ed114392d.tar.gz |
libudev: use DEFINE_PUBLIC_TRIVIAL_REF_UNREF_FUNC() macro where applicable
Diffstat (limited to 'src/libudev/libudev-enumerate.c')
-rw-r--r-- | src/libudev/libudev-enumerate.c | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c index e9f0f2e47e..6b0e5850bd 100644 --- a/src/libudev/libudev-enumerate.c +++ b/src/libudev/libudev-enumerate.c @@ -33,7 +33,7 @@ */ struct udev_enumerate { struct udev *udev; - int refcount; + unsigned n_ref; struct udev_list devices_list; bool devices_uptodate:1; @@ -70,7 +70,7 @@ _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) { return NULL; } - udev_enumerate->refcount = 1; + udev_enumerate->n_ref = 1; udev_enumerate->udev = udev; udev_list_init(udev, &udev_enumerate->devices_list, false); @@ -78,6 +78,14 @@ _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) { return TAKE_PTR(udev_enumerate); } +static struct udev_enumerate *udev_enumerate_free(struct udev_enumerate *udev_enumerate) { + assert(udev_enumerate); + + udev_list_cleanup(&udev_enumerate->devices_list); + sd_device_enumerator_unref(udev_enumerate->enumerator); + return mfree(udev_enumerate); +} + /** * udev_enumerate_ref: * @udev_enumerate: context @@ -86,12 +94,6 @@ _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) { * * Returns: the passed enumeration context **/ -_public_ struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate) { - if (udev_enumerate) - udev_enumerate->refcount++; - - return udev_enumerate; -} /** * udev_enumerate_unref: @@ -102,15 +104,7 @@ _public_ struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_e * * Returns: #NULL **/ -_public_ struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate) { - if (udev_enumerate && (-- udev_enumerate->refcount) == 0) { - udev_list_cleanup(&udev_enumerate->devices_list); - sd_device_enumerator_unref(udev_enumerate->enumerator); - free(udev_enumerate); - } - - return NULL; -} +DEFINE_PUBLIC_TRIVIAL_REF_UNREF_FUNC(struct udev_enumerate, udev_enumerate, udev_enumerate_free); /** * udev_enumerate_get_udev: |