2007-08-17 Michael Snyder <msnyder@access-company.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 17 Aug 2007 23:24:18 +0000 (23:24 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 17 Aug 2007 23:24:18 +0000 (23:24 +0000)
* completer.c (location_completer): Must free 'fn_list', except
in the one case where it is returned (as 'list').

gdb/ChangeLog
gdb/completer.c

index 821d62f614bd6db12f3ac9913e7bc941a74329d5..3bc24acd93b67d4e57043cd90d14eedf08cf4782 100644 (file)
@@ -1,5 +1,8 @@
 2007-08-17  Michael Snyder  <msnyder@access-company.com>
 
+       * completer.c (location_completer): Must free 'fn_list', except 
+       in the one case where it is returned (as 'list').
+
        * varobj.c (value_of_root): Memory leak.
 
        * gdbtypes.h (virtual_base_list): Remove export decl.
index 617aa6a5d64c333aa514ce81e3ecb23ffff60d49..0a0d30e9bc99cfd7f935c6473c25dda96d0b1ffd 100644 (file)
@@ -281,7 +281,8 @@ location_completer (char *text, char *word)
       list = make_symbol_completion_list (symbol_start, word);
       /* If text includes characters which cannot appear in a file
         name, they cannot be asking for completion on files.  */
-      if (strcspn (text, gdb_completer_file_name_break_characters) == text_len)
+      if (strcspn (text, 
+                  gdb_completer_file_name_break_characters) == text_len)
        fn_list = make_source_files_completion_list (text, text);
     }
 
@@ -331,7 +332,10 @@ location_completer (char *text, char *word)
       /* No completions at all.  As the final resort, try completing
         on the entire text as a symbol.  */
       list = make_symbol_completion_list (orig_text, word);
+      xfree (fn_list);
     }
+  else
+    xfree (fn_list);
 
   return list;
 }