Blob Blame History Raw
2005-09-22  Bastien Nocera  <bnocera@redhat.com>

	* symtab.c (find_line_pc_range): Don't free up pc_list
	unconditionally as it may not be allocated.

--- gdb-6.3/gdb/symtab.c.fix	2005-09-22 16:24:06.000000000 -0400
+++ gdb-6.3/gdb/symtab.c	2005-09-22 16:26:17.000000000 -0400
@@ -2427,9 +2427,10 @@ find_line_pc_range (struct symtab_and_li
   /* FIXME: have to handle ctors/dtors where line equates to multiple
             pc ranges.  */
   if (startaddr == 0)
-    startaddr = pc_list[0];
-
-  xfree (pc_list);
+    {
+      startaddr = pc_list[0];
+      xfree (pc_list);
+    }
 
   /* This whole function is based on address.  For example, if line 10 has
      two parts, one from 0x100 to 0x200 and one from 0x300 to 0x400, then