Signed-off-by: Angus Salkeld <asalkeld(a)redhat.com>
---
lib/skiplist.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lib/skiplist.c b/lib/skiplist.c
index 60e962d..ba1d33f 100644
--- a/lib/skiplist.c
+++ b/lib/skiplist.c
@@ -275,13 +275,16 @@ static void
skiplist_destroy(struct qb_map *map)
{
struct skiplist *list = (struct skiplist *)map;
- struct skiplist_node *cur_node = list->header;
+ struct skiplist_node *cur_node;
struct skiplist_node *fwd_node;
- do {
+ for (cur_node = skiplist_node_next(list->header);
+ cur_node;
+ cur_node = fwd_node) {
fwd_node = skiplist_node_next(cur_node);
skiplist_node_destroy(cur_node, list);
- } while ((cur_node = fwd_node));
+ }
+ skiplist_node_destroy(list->header, list);
free(list);
}
--
1.7.6.4
Show replies by date