networkd: link - refactor (un)ref

This commit is contained in:
Tom Gundersen
2015-10-11 15:04:16 +02:00
parent 5c416fc408
commit 957325b763
+17 -4
View File
@@ -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;
}