summaryrefslogtreecommitdiff
path: root/src/analysis/disass/output.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-12-15 13:40:28 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-12-15 13:40:28 (GMT)
commit124c8410dbfcad59d66b850c50c96ec73a607ab7 (patch)
treeb7127c66abfccd11b9126741e2809a893ee44143 /src/analysis/disass/output.c
parentdb1a6171007a6641a4659392c9bcc05670396643 (diff)
Defined proper accesses to instructions loaded by a processor.
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)