diff --git a/lib/slists.c b/lib/slists.c index 35774301..6e0df39e 100644 --- a/lib/slists.c +++ b/lib/slists.c @@ -61,6 +61,9 @@ s_get(siterator *i) f->next = g; if (g) g->prev = f; + + i->prev = NULL; + i->next = NULL; return n; } diff --git a/lib/slists.h b/lib/slists.h index 27520c9f..2334e36a 100644 --- a/lib/slists.h +++ b/lib/slists.h @@ -84,5 +84,6 @@ void s_insert_node(snode *, snode *); snode *s_get(siterator *); void s_put(siterator *, snode *n); static inline void s_init(siterator *i, slist *l) { s_put(i, SHEAD(*l)); } +static inline int s_is_used(siterator *i) { return (i->prev != NULL); } #endif