From 957325b7637a4d3a16a3cea5e2c6b36faa0e1be7 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Fri, 9 Oct 2015 20:47:34 +0200 Subject: networkd: link - refactor (un)ref --- src/network/networkd-link.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/network') diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index eebefda2e1..6c35cafbf5 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -336,15 +336,28 @@ static void link_free(Link *link) { } Link *link_unref(Link *link) { - if (link && (-- link->n_ref <= 0)) - link_free(link); + if (!link) + return NULL; + + assert(link->n_ref > 0); + + link->n_ref --; + + if (link->n_ref > 0) + return NULL; + + link_free(link); return NULL; } Link *link_ref(Link *link) { - if (link) - assert_se(++ link->n_ref >= 2); + if (!link) + return NULL; + + assert(link->n_ref > 0); + + link->n_ref ++; return link; } -- cgit v1.2.3-54-g00ecf