summaryrefslogtreecommitdiff
path: root/bus.c
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2013-12-08 19:23:12 +0100
committerKay Sievers <kay@vrfy.org>2013-12-08 19:23:12 +0100
commit00e8477cc7cd53a152b201ac4c3b087e5c683eb0 (patch)
tree5635eb980c1421993722903b3a8265557eed72e2 /bus.c
parentcca132d976ec0fb285808b5886d5f9b666266392 (diff)
downloadkdbus-bus-00e8477cc7cd53a152b201ac4c3b087e5c683eb0.tar.gz
kdbus-bus-00e8477cc7cd53a152b201ac4c3b087e5c683eb0.tar.bz2
kdbus-bus-00e8477cc7cd53a152b201ac4c3b087e5c683eb0.zip
return NULL from *_unref()
This allows invalidation of a ref in one line: ref = foo_unref(ref);
Diffstat (limited to 'bus.c')
-rw-r--r--bus.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/bus.c b/bus.c
index 538d5ecdbbf..cca2ba7db06 100644
--- a/bus.c
+++ b/bus.c
@@ -69,10 +69,16 @@ static void __kdbus_bus_free(struct kref *kref)
*
* Release a reference. If the reference count drops to 0, the bus will be
* freed.
+ *
+ * Returns: NULL
*/
-void kdbus_bus_unref(struct kdbus_bus *bus)
+struct kdbus_bus *kdbus_bus_unref(struct kdbus_bus *bus)
{
+ if (!bus)
+ return NULL;
+
kref_put(&bus->kref, __kdbus_bus_free);
+ return NULL;
}
/**