diff gui/util/list.c @ 37066:1843c6aaae4d

Add listFree(). Use it in listSet(). (This is the only purpose of use at the moment, but we will need listFree() later which is the reason behind setting the pointer to NULL after freeing.)
author ib
date Thu, 24 Apr 2014 11:56:18 +0000
parents b28b632efeef
children b03e0fd957fd
line wrap: on
line diff
--- a/gui/util/list.c	Thu Apr 24 11:31:31 2014 +0000
+++ b/gui/util/list.c	Thu Apr 24 11:56:18 2014 +0000
@@ -26,6 +26,7 @@
 #include <string.h>
 
 #include "list.h"
+#include "mem.h"
 #include "string.h"
 #include "gui/app/gui.h"
 
@@ -269,6 +270,25 @@
 }
 
 /**
+ * @brief Free a string list.
+ *
+ * @param list pointer to the string list
+ */
+void listFree(char ***list)
+{
+    if (*list) {
+        char **l = *list;
+
+        while (*l) {
+            free(*l);
+            l++;
+        }
+
+        nfree(*list);
+    }
+}
+
+/**
  * @brief Set string list to @a entry.
  *
  * @param list pointer to the string list
@@ -278,16 +298,7 @@
  */
 void listSet(char ***list, const char *entry)
 {
-    if (*list) {
-        char **l = *list;
-
-        while (*l) {
-            free(*l);
-            l++;
-        }
-
-        free(*list);
-    }
+    listFree(list);
 
     *list = malloc(2 * sizeof(char *));