diff options
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/gtkblockdisplay.c | 1 | ||||
-rw-r--r-- | src/gtkext/gtkstatusstack.c | 60 | ||||
-rw-r--r-- | src/gtkext/gtkstatusstack.h | 4 | ||||
-rw-r--r-- | src/gtkext/hexdisplay.c | 1 | ||||
-rw-r--r-- | src/gtkext/rendering.c | 1 |
5 files changed, 14 insertions, 53 deletions
diff --git a/src/gtkext/gtkblockdisplay.c b/src/gtkext/gtkblockdisplay.c index 1810fc9..00da4cc 100644 --- a/src/gtkext/gtkblockdisplay.c +++ b/src/gtkext/gtkblockdisplay.c @@ -28,6 +28,7 @@ #include "../arch/instruction.h" #include "../arch/operand.h" #include "../analysis/loaded.h" +#include "../core/columns.h" #include "../glibext/gbinarycursor.h" diff --git a/src/gtkext/gtkstatusstack.c b/src/gtkext/gtkstatusstack.c index 499ea88..fe4e4d5 100644 --- a/src/gtkext/gtkstatusstack.c +++ b/src/gtkext/gtkstatusstack.c @@ -34,7 +34,6 @@ #include "easygtk.h" -#include "../common/extstr.h" #include "../gui/agroup.h" #include "../format/format.h" @@ -503,8 +502,9 @@ static void on_zoom_icon_press(GtkEntry *entry, GtkEntryIconPosition icon_pos, G /****************************************************************************** * * * Paramètres : stack = barre de statut à actualiser. * -* binary = binaire chargé rassemblant l'ensemble des infos. * * range = emplacement à mettre en valeur. * +* segment = zone de binaire d'appartenance. * +* symbol = éventuelle position par rapport à un symbole. * * encoding = encodage d'une éventuelle instruction ou NULL. * * * * Description : Actualise les informations liées une position d'assemblage. * @@ -515,25 +515,14 @@ static void on_zoom_icon_press(GtkEntry *entry, GtkEntryIconPosition icon_pos, G * * ******************************************************************************/ -void gtk_status_stack_update_current_location(GtkStatusStack *stack, const GLoadedBinary *binary, const mrange_t *range, const char *encoding) +void gtk_status_stack_update_current_location(GtkStatusStack *stack, const mrange_t *range, const char *segment, const char *symbol, const char *encoding) { assembly_info *info; /* Informations à constituer */ - GExeFormat *format; /* Format de binaire à traiter */ const vmpa2t *addr; /* Localisation de départ */ phys_t size; /* Taille de l'emplacement */ - GBinPortion *portions; /* Couche première de portions */ - GBinPortion *portion; /* Zone mémoire d'appartenance */ - const char *text; /* Texte au contenu à copier */ - GBinSymbol *symbol; /* Symbole présent à l'adresse */ - phys_t diff; /* Décalage de l'adresse */ - char *label; /* Description d'un symbole */ - vmpa2t tmp; /* Zone de construction temp. */ - VMPA_BUFFER(offset); /* Décalage physique */ info = stack->asm_info; - format = g_loaded_binary_get_format(binary); - /* Bascule vers une zone courante nouvelle ? */ addr = get_mrange_addr(range); @@ -542,7 +531,7 @@ void gtk_status_stack_update_current_location(GtkStatusStack *stack, const GLoad if (cmp_mrange(&info->current, range) == 0 && info->size == size && info->encoding == encoding) - goto gssuci_useless; + goto useless; /* Réinitialisation */ @@ -552,20 +541,7 @@ void gtk_status_stack_update_current_location(GtkStatusStack *stack, const GLoad /* Zone d'appartenance */ - portions = g_exe_format_get_portions(format); - - portion = g_binary_portion_find_at_addr(portions, addr); - - text = g_binary_portion_get_desc(portion); - - if (text != NULL) - info->segment = strdup(text); - else - info->segment = strdup(_("Binary")); - - g_object_unref(G_OBJECT(portion)); - - g_object_unref(G_OBJECT(portions)); + info->segment = strdup(segment); /* Adresses de base */ @@ -578,26 +554,8 @@ void gtk_status_stack_update_current_location(GtkStatusStack *stack, const GLoad /* Symbole concerné */ - if (g_binary_format_resolve_symbol(G_BIN_FORMAT(format), addr, false, &symbol, &diff)) - { - label = g_binary_symbol_get_label(symbol); - - if (label != NULL) - { - info->symbol = label; - - info->symbol = stradd(info->symbol, "+"); - - init_vmpa(&tmp, diff, VMPA_NO_VIRTUAL); - vmpa2_phys_to_string(&tmp, MDS_UNDEFINED, offset, NULL); - - info->symbol = stradd(info->symbol, offset); - - } - - g_object_unref(G_OBJECT(symbol)); - - } + if (symbol != NULL) + info->symbol = strdup(symbol); /* Nettoyage et conclusion */ @@ -605,9 +563,9 @@ void gtk_status_stack_update_current_location(GtkStatusStack *stack, const GLoad gtk_status_stack_show_current_location(stack); - gssuci_useless: + useless: - g_object_unref(G_OBJECT(format)); + ; } diff --git a/src/gtkext/gtkstatusstack.h b/src/gtkext/gtkstatusstack.h index 91182a1..f419014 100644 --- a/src/gtkext/gtkstatusstack.h +++ b/src/gtkext/gtkstatusstack.h @@ -28,7 +28,7 @@ #include <gtk/gtk.h> -#include "../analysis/binary.h" +#include "../arch/vmpa.h" @@ -62,7 +62,7 @@ GtkStatusStack *gtk_status_stack_new(void); /* Actualise les informations liées une position d'assemblage. */ -void gtk_status_stack_update_current_location(GtkStatusStack *, const GLoadedBinary *, const mrange_t *, const char *); +void gtk_status_stack_update_current_location(GtkStatusStack *, const mrange_t *, const char *, const char *, const char *); /* Réinitialise les informations associées une position. */ void gtk_status_stack_reset_current_location(GtkStatusStack *); diff --git a/src/gtkext/hexdisplay.c b/src/gtkext/hexdisplay.c index f557513..32bd69b 100644 --- a/src/gtkext/hexdisplay.c +++ b/src/gtkext/hexdisplay.c @@ -25,6 +25,7 @@ #include "gtkbufferdisplay-int.h" +#include "../core/columns.h" #include "../core/params.h" #include "../format/format.h" #include "../glibext/generators/hex.h" diff --git a/src/gtkext/rendering.c b/src/gtkext/rendering.c index bb86791..8badf21 100644 --- a/src/gtkext/rendering.c +++ b/src/gtkext/rendering.c @@ -28,6 +28,7 @@ #include <malloc.h> #include <stdio.h> #include <string.h> +#include <gtk/gtk.h> #include "../common/extstr.h" |