]> mj.ucw.cz Git - libucw.git/commitdiff
slists: The behaviour of slist_remove_head now mimics clist_remove_head
authorTomas Valla <tom@ucw.cz>
Wed, 5 Sep 2012 09:15:15 +0000 (11:15 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 5 Sep 2012 13:24:28 +0000 (15:24 +0200)
ucw/slists.h

index 5c6d29f93721ea256bd6b66efb2d57d457c891b1..30089ac7c7c05252f965dfc146f974849152c7b4 100644 (file)
@@ -116,9 +116,12 @@ static inline void slist_remove_after(slist *l, snode *after)
 /**
  * Remove the first node in @l. The list can be empty.
  **/
-static inline void slist_remove_head(slist *l)
+static inline void *slist_remove_head(slist *l)
 {
-  slist_remove_after(l, &l->head);
+  snode *n = slist_head(l);
+  if (n)
+    slist_remove_after(l, &l->head);
+  return n;
 }
 
 /* Loops */