diff options
Diffstat (limited to 'libdwfl')
-rw-r--r-- | libdwfl/ChangeLog | 7 | ||||
-rw-r--r-- | libdwfl/dwfl_module.c | 6 | ||||
-rw-r--r-- | libdwfl/frame_unwind.c | 1 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index ff38108e..a9238d80 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,10 @@ +2013-12-14 Mark Wielaard <[email protected]> + + * dwfl_module.c (__libdwfl_module_free): Free mod->reloc_info if + allocated. Call dwarf_cfi_end on mod->eh_cfi if necessary. + * frame_unwind.c (handle_cfi): Free frame result from + dwarf_cfi_addrframe when done. + 2013-12-15 Jan Kratochvil <[email protected]> unwinder: ppc and ppc64 diff --git a/libdwfl/dwfl_module.c b/libdwfl/dwfl_module.c index f914b3a3..bb167ab2 100644 --- a/libdwfl/dwfl_module.c +++ b/libdwfl/dwfl_module.c @@ -84,6 +84,12 @@ __libdwfl_module_free (Dwfl_Module *mod) if (mod->build_id_bits != NULL) free (mod->build_id_bits); + if (mod->reloc_info != NULL) + free (mod->reloc_info); + + if (mod->eh_cfi != NULL) + dwarf_cfi_end (mod->eh_cfi); + free (mod->name); free (mod); } diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c index 2973f955..630efcb6 100644 --- a/libdwfl/frame_unwind.c +++ b/libdwfl/frame_unwind.c @@ -580,6 +580,7 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI *cfi, Dwarf_Addr bias) else unwound->pc_state = DWFL_FRAME_STATE_PC_SET; } + free (frame); } void |