summaryrefslogtreecommitdiff
path: root/plugins/ropgadgets
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-08-29 22:30:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-08-29 22:30:58 (GMT)
commit6ba73df8224dc2a88fe5f37a331960936758036e (patch)
tree3db220cc946f3a23887016f3922fe94545e27620 /plugins/ropgadgets
parentd91239074b9042988d08093948059096942bdcfc (diff)
Skipped the link to the global reference space when loading plugins.
Diffstat (limited to 'plugins/ropgadgets')
-rw-r--r--plugins/ropgadgets/plugin.c16
-rw-r--r--plugins/ropgadgets/plugin.h2
-rw-r--r--plugins/ropgadgets/select.c14
-rw-r--r--plugins/ropgadgets/select.h5
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 *);