summaryrefslogtreecommitdiff
path: root/src/analysis/disass/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/disass/output.c')
-rw-r--r--src/analysis/disass/output.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/analysis/disass/output.c b/src/analysis/disass/output.c
index f5decb7..0d85870 100644
--- a/src/analysis/disass/output.c
+++ b/src/analysis/disass/output.c
@@ -112,7 +112,9 @@ void print_disassembled_instructions(GCodeBuffer *buffer, GExeFormat *format, GA
content = g_binary_format_get_content(G_BIN_FORMAT(format));
- count = g_arch_processor_count_disassembled_instructions(proc);
+ g_arch_processor_lock(proc);
+
+ count = g_arch_processor_count_instructions(proc);
id = gtk_status_stack_add_activity(status, _("Printing all disassebled parts..."), count);
@@ -120,7 +122,7 @@ void print_disassembled_instructions(GCodeBuffer *buffer, GExeFormat *format, GA
for (i = 0; i < count; i++)
{
- instr = g_arch_processor_get_disassembled_instruction(proc, i);
+ instr = g_arch_processor_get_instruction(proc, i);
iaddr = get_mrange_addr(g_arch_instruction_get_range(instr));
@@ -322,12 +324,16 @@ void print_disassembled_instructions(GCodeBuffer *buffer, GExeFormat *format, GA
g_code_buffer_append_new_line(buffer, line);
+ g_object_unref(G_OBJECT(instr));
+
gtk_status_stack_update_activity_value(status, id, 1);
}
gtk_status_stack_remove_activity(status, id);
+ g_arch_processor_unlock(proc);
+
g_object_unref(G_OBJECT(content));
if (portions != NULL)