summaryrefslogtreecommitdiff
path: root/src/libudev/libudev-device.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-11-19 01:15:31 +0100
committerLennart Poettering <lennart@poettering.net>2013-11-20 19:36:14 +0100
commit725d7e6cebcafef3bd4adbf76c8fa73a9b18972e (patch)
tree0f11bd0acef710d24a462b66555a2ccfe0249494 /src/libudev/libudev-device.c
parent994e023433e020e2b3f683d5d1f2c974db580447 (diff)
libudev: always return NULL in _unref() APIs
Returning anything else but NULL would suggest the caller's reference might still be valid, but it isn't, because the caller just invoked _unref() after all. This turns the return value into a typesafe shortcut that allows unreffing and resetting a reference in one line. In contrast to solutions for this which take a pointer to a pointer to accomplish the same this solution is just syntactic sugar the developer can make use of but doesn't have to, and this is particularly useful when immediately unreffing objects returned by function calls.
Diffstat (limited to 'src/libudev/libudev-device.c')
-rw-r--r--src/libudev/libudev-device.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index b5b07fc5de..059a590601 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -1090,7 +1090,7 @@ _public_ struct udev_device *udev_device_ref(struct udev_device *udev_device)
* Drop a reference of a udev device. If the refcount reaches zero,
* the resources of the device will be released.
*
- * Returns: the passed udev device if it has still an active reference, or #NULL otherwise.
+ * Returns: #NULL
**/
_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
{
@@ -1098,7 +1098,7 @@ _public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
return NULL;
udev_device->refcount--;
if (udev_device->refcount > 0)
- return udev_device;
+ return NULL;
if (udev_device->parent_device != NULL)
udev_device_unref(udev_device->parent_device);
free(udev_device->syspath);