PR 868
* dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated for filenames in function tables and variable tables.
This commit is contained in:
parent
41911f6852
commit
90b5b1a5e4
|
@ -1,3 +1,9 @@
|
|||
2008-05-21 André Johansen <andrejoh@gmail.com>
|
||||
|
||||
PR 868
|
||||
* dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated
|
||||
for filenames in function tables and variable tables.
|
||||
|
||||
2008-05-19 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR 2995, PR 6473
|
||||
|
|
29
bfd/dwarf2.c
29
bfd/dwarf2.c
|
@ -3202,6 +3202,8 @@ _bfd_dwarf2_cleanup_debug_info (bfd *abfd)
|
|||
for (each = stash->all_comp_units; each; each = each->next_unit)
|
||||
{
|
||||
struct abbrev_info **abbrevs = each->abbrevs;
|
||||
struct funcinfo *function_table = each->function_table;
|
||||
struct varinfo *variable_table = each->variable_table;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < ABBREV_HASH_SIZE; i++)
|
||||
|
@ -3220,6 +3222,33 @@ _bfd_dwarf2_cleanup_debug_info (bfd *abfd)
|
|||
free (each->line_table->dirs);
|
||||
free (each->line_table->files);
|
||||
}
|
||||
|
||||
while (function_table)
|
||||
{
|
||||
if (function_table->file)
|
||||
{
|
||||
free (function_table->file);
|
||||
function_table->file = NULL;
|
||||
}
|
||||
|
||||
if (function_table->caller_file)
|
||||
{
|
||||
free (function_table->caller_file);
|
||||
function_table->caller_file = NULL;
|
||||
}
|
||||
function_table = function_table->prev_func;
|
||||
}
|
||||
|
||||
while (variable_table)
|
||||
{
|
||||
if (variable_table->file)
|
||||
{
|
||||
free (variable_table->file);
|
||||
variable_table->file = NULL;
|
||||
}
|
||||
|
||||
variable_table = variable_table->prev_var;
|
||||
}
|
||||
}
|
||||
|
||||
free (stash->dwarf_abbrev_buffer);
|
||||
|
|
Loading…
Reference in New Issue