22 lines
737 B
Diff
22 lines
737 B
Diff
|
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
|