From 2fa2fdd8b8b8e39150011ef3e3caa1f580a5d554 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakobols@kth.se> Date: Wed, 30 May 2018 09:02:17 +0200 Subject: [PATCH] add clear_list function --- dfs.c | 11 +++++++++++ dfs.h | 3 ++- dongle_infrastructure.c | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dfs.c b/dfs.c index caca347..6b97798 100644 --- a/dfs.c +++ b/dfs.c @@ -49,4 +49,15 @@ bool is_visited(char *path, struct list_head *visited) } return false; +} + +void clear_list(struct list_head *visited) +{ + struct node *n, *tmp; + + list_for_each_entry_safe(n, tmp, visited, list) { + free(n->path); + list_del(n->list); + free(n); + } } \ No newline at end of file diff --git a/dfs.h b/dfs.h index 4666f5e..ced3113 100644 --- a/dfs.h +++ b/dfs.h @@ -11,5 +11,6 @@ struct node { void enqueue_stack(struct node *n, struct list_head *stack); struct node *dequeue_stack(struct list_head *stack); void add_visited(struct node *n, struct list_head *visited); -bool is_visited(struct node *n, struct list_head *visited); +bool is_visited(char *path, struct list_head *visited); +void clear_list(struct list_head *visited); #endif \ No newline at end of file diff --git a/dongle_infrastructure.c b/dongle_infrastructure.c index e2eb86b..3f50e58 100644 --- a/dongle_infrastructure.c +++ b/dongle_infrastructure.c @@ -289,6 +289,7 @@ char *dfs_get_path_name(char *folder_name) } closedir(dr); } + clear_list(&visited); fail_opendir: return NULL; success: -- GitLab