summaryrefslogtreecommitdiffstats
path: root/libdwfl
diff options
context:
space:
mode:
Diffstat (limited to 'libdwfl')
-rw-r--r--libdwfl/ChangeLog7
-rw-r--r--libdwfl/dwfl_module.c6
-rw-r--r--libdwfl/frame_unwind.c1
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