* 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.
**/
-_public_ void udev_device_unref(struct udev_device *udev_device)
+_public_ struct udev_device *udev_device_unref(struct udev_device *udev_device)
{
if (udev_device == NULL)
- return;
+ return NULL;
udev_device->refcount--;
if (udev_device->refcount > 0)
- return;
+ return udev_device;
if (udev_device->parent_device != NULL)
udev_device_unref(udev_device->parent_device);
free(udev_device->syspath);
free(udev_device->envp);
free(udev_device->monitor_buf);
free(udev_device);
+ return NULL;
}
/**