X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=blobdiff_plain;f=safe_list.c;h=16f57e084f4bb7dd59afee1366191f5d069a0fec;hp=d9f211f905460b7fb29fa6c27fa8649f94441f67;hb=fd57eea9f37e447814afbf934db626288aac23c4;hpb=7c11f6e91338eb73a1015606e55798d09369b2e8 diff --git a/safe_list.c b/safe_list.c index d9f211f..16f57e0 100644 --- a/safe_list.c +++ b/safe_list.c @@ -86,6 +86,12 @@ void safe_list_add(struct safe_list *list, struct safe_list *head) list_add_tail(&list->list, &head->list); } +void safe_list_add_first(struct safe_list *list, struct safe_list *head) +{ + list->i = NULL; + list_add(&list->list, &head->list); +} + void safe_list_del(struct safe_list *list) { struct safe_list_iterator *i, *next_i, **tail; @@ -108,7 +114,8 @@ void safe_list_del(struct safe_list *list) next->i = list->i; list->i->head = &next->i; *tail = next_i; - next_i->head = tail; + if (next_i) + next_i->head = tail; list->i = NULL; }