diff mcabber/src/screen.c @ 1076:b9698c89f46d

Fix memory leak in scr_handle_tab()
author Mikael Berthe <mikael@lilotux.net>
date Sun, 03 Dec 2006 21:15:37 +0100
parents 03bc225ad763
children c51ca5225516
line wrap: on
line diff
--- a/mcabber/src/screen.c	Sun Dec 03 19:29:54 2006 +0100
+++ b/mcabber/src/screen.c	Sun Dec 03 21:15:37 2006 +0100
@@ -2310,12 +2310,21 @@
   }
 
   if (!completion_started) {
-    GSList *list = compl_get_category_list(compl_categ);
+    guint dynlist;
+    GSList *list = compl_get_category_list(compl_categ, &dynlist);
     if (list) {
       char *prefix = g_strndup(row, ptr_inputline-row);
       // Init completion
       new_completion(prefix, list);
       g_free(prefix);
+      // Free the list if it's a dynamic one
+      if (dynlist) {
+        GSList *slp;
+        for (slp = list; slp; slp = g_slist_next(slp))
+          g_free(slp->data);
+        g_slist_free(list);
+
+      }
       // Now complete
       cchar = complete();
       if (cchar)