diff options
Diffstat (limited to 'plugins/ropgadgets')
-rw-r--r-- | plugins/ropgadgets/plugin.c | 16 | ||||
-rw-r--r-- | plugins/ropgadgets/plugin.h | 2 | ||||
-rw-r--r-- | plugins/ropgadgets/select.c | 14 | ||||
-rw-r--r-- | plugins/ropgadgets/select.h | 5 |
4 files changed, 18 insertions, 19 deletions
diff --git a/plugins/ropgadgets/plugin.c b/plugins/ropgadgets/plugin.c index c81d00a..8b35647 100644 --- a/plugins/ropgadgets/plugin.c +++ b/plugins/ropgadgets/plugin.c @@ -27,6 +27,7 @@ #include <i18n.h> +#include <gui/core/global.h> #include <gtkext/easygtk.h> #include <plugins/plugin-def.h> @@ -41,7 +42,7 @@ DEFINE_CHRYSALIDE_ACTIVE_PLUGIN("ROP gadgets", "Find available gadgets for a ROP /* Réagit avec le menu "Greffons -> Lister les gadgets ROP". */ -static void mcb_plugins_list_rop_gadgets(GtkMenuItem *, GObject *); +static void mcb_plugins_list_rop_gadgets(GtkMenuItem *, gpointer); @@ -58,16 +59,19 @@ static void mcb_plugins_list_rop_gadgets(GtkMenuItem *, GObject *); * * ******************************************************************************/ -G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin, GObject *ref) +G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin) { + GObject *ref; /* Espace de référencements */ GtkContainer *menubar; /* Support pour éléments */ GtkWidget *submenuitem; /* Sous-élément de menu */ + ref = G_OBJECT(get_editor_window()); /* FIXME */ + menubar = GTK_CONTAINER(g_object_get_data(ref, "menubar_plugins")); if (menubar == NULL) return false; submenuitem = qck_create_menu_item(ref, "mnu_plugins_ropgadgets", _("List ROP gadgets"), - G_CALLBACK(mcb_plugins_list_rop_gadgets), ref); + G_CALLBACK(mcb_plugins_list_rop_gadgets), NULL); gtk_container_add(GTK_CONTAINER(menubar), submenuitem); return true; @@ -78,7 +82,7 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin, GObject *ref) /****************************************************************************** * * * Paramètres : menuitem = élément de menu sélectionné. * -* ref = adresse de l'espace de référencement global. * +* unused = adresse non utilisée ici. * * * * Description : Réagit avec le menu "Greffons -> Lister les gadgets ROP". * * * @@ -88,8 +92,8 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin, GObject *ref) * * ******************************************************************************/ -static void mcb_plugins_list_rop_gadgets(GtkMenuItem *menuitem, GObject *ref) +static void mcb_plugins_list_rop_gadgets(GtkMenuItem *menuitem, gpointer unused) { - run_rop_finder_assistant(ref, NULL); + run_rop_finder_assistant(get_editor_window()); } diff --git a/plugins/ropgadgets/plugin.h b/plugins/ropgadgets/plugin.h index 9f7a0a1..c76c6c7 100644 --- a/plugins/ropgadgets/plugin.h +++ b/plugins/ropgadgets/plugin.h @@ -30,7 +30,7 @@ /* Prend acte du chargement du greffon. */ -G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *, GObject *ref); +G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *); diff --git a/plugins/ropgadgets/select.c b/plugins/ropgadgets/select.c index aa6603f..92456e7 100644 --- a/plugins/ropgadgets/select.c +++ b/plugins/ropgadgets/select.c @@ -41,6 +41,7 @@ #include <common/extstr.h> #include <core/formats.h> #include <core/processors.h> +#include <gui/core/global.h> #include <gtkext/easygtk.h> @@ -222,8 +223,7 @@ static void add_new_gadgets_for_category(GExeFormat *, GtkComboBoxText *, GtkTre /****************************************************************************** * * -* Paramètres : global = espace de référencements global. * -* parent = fenêtre principale de l'éditeur. * +* Paramètres : parent = fenêtre principale de l'éditeur. * * * * Description : Crée et affiche un assistant de sélection de gadgets ROP. * * * @@ -233,7 +233,7 @@ static void add_new_gadgets_for_category(GExeFormat *, GtkComboBoxText *, GtkTre * * ******************************************************************************/ -void run_rop_finder_assistant(GObject *global, GtkWindow *parent) +void run_rop_finder_assistant(GtkWindow *parent) { GtkWidget *assistant; /* Fenêtre à afficher */ GObject *ref; /* Espace de référencement */ @@ -247,7 +247,6 @@ void run_rop_finder_assistant(GObject *global, GtkWindow *parent) gtk_window_set_transient_for(GTK_WINDOW(assistant), parent); ref = G_OBJECT(assistant); - g_object_set_data(ref, "global", global); register_input_output_panel(GTK_ASSISTANT(assistant), ref); register_search_display_panel(GTK_ASSISTANT(assistant), ref); @@ -503,7 +502,6 @@ static void register_input_output_panel(GtkAssistant *assistant, GObject *ref) static GtkWidget *load_and_populate_current_project_binaries(GObject *ref) { GtkWidget *result; /* Composant à retourner */ - GObject *global; /* Espace de référencements */ GLoadedBinary *current; /* Binaire actif courant */ gint selected; /* Indice à sélectionner */ GtkListStore *store; /* Modèle de gestion en liste */ @@ -515,9 +513,7 @@ static GtkWidget *load_and_populate_current_project_binaries(GObject *ref) /* Récupération du binaire courant */ - global = G_OBJECT(g_object_get_data(ref, "global")); - - current = G_LOADED_BINARY(g_object_get_data(global, "current_binary")); + current = get_current_binary(); /* Constitution d'une liste de binaires courants */ @@ -567,6 +563,8 @@ static GtkWidget *load_and_populate_current_project_binaries(GObject *ref) g_object_unref(G_OBJECT(store)); + g_object_unref(G_OBJECT(current)); + return result; } diff --git a/plugins/ropgadgets/select.h b/plugins/ropgadgets/select.h index a868cd8..913b6cc 100644 --- a/plugins/ropgadgets/select.h +++ b/plugins/ropgadgets/select.h @@ -28,12 +28,9 @@ #include <gtk/gtk.h> -#include <analysis/binary.h> - - /* Crée et affiche un assistant de sélection de gadgets ROP. */ -void run_rop_finder_assistant(GObject *, GtkWindow *); +void run_rop_finder_assistant(GtkWindow *); |