diff options
Diffstat (limited to 'src/analysis/loading.c')
-rw-r--r-- | src/analysis/loading.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/analysis/loading.c b/src/analysis/loading.c index 254939b..700a03f 100644 --- a/src/analysis/loading.c +++ b/src/analysis/loading.c @@ -27,6 +27,7 @@ #include "../core/formats.h" #include "../core/global.h" #include "../glibext/delayed-int.h" +#include "../glibext/signal.h" #include "../gui/panels/log.h" @@ -591,6 +592,7 @@ static void g_binary_loader_process(GBinaryLoader *loader, GtkStatusStack *statu { xmlDocPtr xdoc; /* Structure XML chargée */ xmlXPathContextPtr context; /* Contexte pour les XPath */ + GLoadedBinary *binary; /* Binaire désormais en place */ /* Tentative de chargement de binaire */ @@ -617,7 +619,19 @@ static void g_binary_loader_process(GBinaryLoader *loader, GtkStatusStack *statu if (loader->from_content) g_study_project_add_binary_content(loader->project, loader->content, PCS_ROOT/* FIXME : dstudy->state*/); - ack_loaded_binary(loader, loader->project); + binary = g_binary_loader_get_result(loader); + + if (binary != NULL) + { + g_signal_connect_to_main_swapped(binary, "disassembly-done", + G_CALLBACK(g_study_project_attach_content), loader->project, + g_cclosure_marshal_VOID__VOID); + + g_loaded_binary_analyse(binary); + + g_object_unref(G_OBJECT(binary)); + + } } |