diff options
Diffstat (limited to 'src/analysis/binary.c')
-rw-r--r-- | src/analysis/binary.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c index c21b554..8cec72a 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -41,6 +41,7 @@ #include "line_prologue.h" #include "prototype.h" #include "../common/extstr.h" +#include "../glibext/delayed.h" #include "../format/format.h" #include "../panel/log.h" #include "../plugins/pglist.h" @@ -101,7 +102,7 @@ bin_t *map_binary_file(const char *, off_t *); GRenderingLine *build_binary_prologue(const char *, const uint8_t *, off_t); /* Acquitte la fin d'un désasemblage différé et complet. */ -void ack_completed_disassembly(GDelayedManager *, GOpenidaBinary *, GRenderingLine *, GOpenidaBinary *); +void ack_completed_disassembly(GDisassManager *, GOpenidaBinary *, GRenderingLine *, GOpenidaBinary *); @@ -312,24 +313,22 @@ bool g_openida_binary_save(const GOpenidaBinary *binary, xmlDocPtr xdoc, xmlXPat void g_openida_binary_analyse(GOpenidaBinary *binary) { - GDelayedManager *manager; /* Gestionnaire de différés */ + GDisassManager *manager; /* Gestionnaire de différés */ GBinPart **parts; /* Parties d'élément binaire */ size_t parts_count; /* Nombre de ces parties */ + GDelayedDisassembly *disass; /* Désassemblage à mener */ - manager = get_delayed_manager(); + manager = get_disassembly_manager(); parts = g_exe_format_get_parts(binary->format, &parts_count); qsort(parts, parts_count, sizeof(GBinPart *), g_binary_part_compare); + disass = g_delayed_disassembly_new(binary, parts, parts_count); g_signal_connect(manager, "disassembly-completed", G_CALLBACK(ack_completed_disassembly), binary); - g_delayed_manager_schedule_disassembly(manager, binary, parts, parts_count); - - - - + g_delayed_queue_schedule_work(G_WORK_QUEUE(manager), G_DELAYED_WORK(disass)); } @@ -605,7 +604,7 @@ GRenderingLine *build_binary_prologue(const char *filename, const uint8_t *data, * * ******************************************************************************/ -void ack_completed_disassembly(GDelayedManager *manager, GOpenidaBinary *binary, GRenderingLine *lines, GOpenidaBinary *user) +void ack_completed_disassembly(GDisassManager *manager, GOpenidaBinary *binary, GRenderingLine *lines, GOpenidaBinary *user) { GRenderingLine *line; /* "Première" ligne de rendu */ GPluginModule **pglist; /* Liste de greffons */ |