summaryrefslogtreecommitdiff
path: root/src/plugins
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 /src/plugins
parentd91239074b9042988d08093948059096942bdcfc (diff)
Skipped the link to the global reference space when loading plugins.
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/pglist.c13
-rw-r--r--src/plugins/pglist.h2
-rw-r--r--src/plugins/plugin-int.h4
-rw-r--r--src/plugins/plugin.c12
-rw-r--r--src/plugins/plugin.h2
5 files changed, 12 insertions, 21 deletions
diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c
index 2edc392..112a560 100644
--- a/src/plugins/pglist.c
+++ b/src/plugins/pglist.c
@@ -51,8 +51,6 @@ typedef struct _pg_array
/* Propriétés de l'ensemble des greffons */
typedef struct _plugins_list
{
- GObject *ref; /* Référencement global */
-
pg_array *all; /* Liste de tous les greffons */
pg_array sorted[PGA_COUNT]; /* Tri par catégories */
@@ -73,7 +71,7 @@ void browse_directory_for_plugins(plugins_list *, const char *);
/******************************************************************************
* *
-* Paramètres : ref = espace de référencement global. *
+* Paramètres : - *
* *
* Description : Procède au chargement des différents greffons trouvés. *
* *
@@ -83,13 +81,10 @@ void browse_directory_for_plugins(plugins_list *, const char *);
* *
******************************************************************************/
-bool init_all_plugins(GObject *ref)
+bool init_all_plugins(void)
{
size_t i; /* Boucle de parcours */
- _list.ref = ref;
- g_object_ref(ref);
-
for (i = 0; i < PGA_COUNT; i++)
_list.sorted[i].action = PGA_EMPTY;
@@ -125,8 +120,6 @@ void exit_all_plugins(void)
for (i = 0; i < PGA_COUNT; i++)
free(_list.sorted[i].plugins);
- g_object_unref(_list.ref);
-
}
@@ -197,7 +190,7 @@ void browse_directory_for_plugins(plugins_list *list, const char *dir)
else
{
- plugin = g_plugin_module_new(filename, _list.ref);
+ plugin = g_plugin_module_new(filename);
if (plugin != NULL)
add_plugin_to_main_list(plugin);
diff --git a/src/plugins/pglist.h b/src/plugins/pglist.h
index e085102..5dfd6c3 100644
--- a/src/plugins/pglist.h
+++ b/src/plugins/pglist.h
@@ -36,7 +36,7 @@
/* Procède au chargement des différents greffons trouvés. */
-bool init_all_plugins(GObject *);
+bool init_all_plugins(void);
/* Procède au déchargement des différents greffons présents. */
void exit_all_plugins(void);
diff --git a/src/plugins/plugin-int.h b/src/plugins/plugin-int.h
index 7ccd2a6..ac6ade6 100644
--- a/src/plugins/plugin-int.h
+++ b/src/plugins/plugin-int.h
@@ -37,7 +37,7 @@
/* Prend acte du [dé]chargement du greffon. */
-typedef bool (* pg_management_fc) (GPluginModule *, GObject *);
+typedef bool (* pg_management_fc) (GPluginModule *);
/* Exécute une action pendant un désassemblage de binaire. */
typedef void (* pg_process_disassembly_fc) (const GPluginModule *, PluginAction, GLoadedBinary *);
@@ -127,7 +127,7 @@ struct _GPluginModuleClass
/* Termine le chargement du greffon préparé. */
-bool g_plugin_module_load(GPluginModule *, GObject *);
+bool g_plugin_module_load(GPluginModule *);
/* Présente dans le journal un message simple. */
void g_plugin_module_log_simple_message(const GPluginModule *, LogMessageType, const char *);
diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c
index 0c287d6..03c3b21 100644
--- a/src/plugins/plugin.c
+++ b/src/plugins/plugin.c
@@ -116,7 +116,7 @@ static void g_plugin_module_init(GPluginModule *plugin)
static void g_plugin_module_dispose(GPluginModule *plugin)
{
if (plugin->exit != NULL)
- plugin->exit(plugin, NULL /* FIXME */);
+ plugin->exit(plugin);
if (plugin->module != NULL)
g_module_close(plugin->module);
@@ -150,7 +150,6 @@ static void g_plugin_module_finalize(GPluginModule *plugin)
/******************************************************************************
* *
* Paramètres : filename = nom du fichier à charger. *
-* ref = espace de référencement global. *
* *
* Description : Crée un module pour un greffon donné. *
* *
@@ -160,7 +159,7 @@ static void g_plugin_module_finalize(GPluginModule *plugin)
* *
******************************************************************************/
-GPluginModule *g_plugin_module_new(const gchar *filename, GObject *ref)
+GPluginModule *g_plugin_module_new(const gchar *filename)
{
GPluginModule *result; /* Structure à retourner */
plugin_abi_version_t current; /* Version de l'ABI actuelle */
@@ -321,7 +320,7 @@ GPluginModule *g_plugin_module_new(const gchar *filename, GObject *ref)
/* Conclusion */
- if (!g_plugin_module_load(result, ref))
+ if (!g_plugin_module_load(result))
goto bad_plugin;
return result;
@@ -338,7 +337,6 @@ GPluginModule *g_plugin_module_new(const gchar *filename, GObject *ref)
/******************************************************************************
* *
* Paramètres : plugin = greffon à valider. *
-* ref = espace de référencement global. *
* *
* Description : Termine le chargement du greffon préparé. *
* *
@@ -348,7 +346,7 @@ GPluginModule *g_plugin_module_new(const gchar *filename, GObject *ref)
* *
******************************************************************************/
-bool g_plugin_module_load(GPluginModule *plugin, GObject *ref)
+bool g_plugin_module_load(GPluginModule *plugin)
{
bool result; /* Bilan à faire remonter */
char *dir; /* Répertoire modifiable */
@@ -360,7 +358,7 @@ bool g_plugin_module_load(GPluginModule *plugin, GObject *ref)
if (plugin->init != NULL)
{
- if (!plugin->init(plugin, ref))
+ if (!plugin->init(plugin))
{
log_variadic_message(LMT_ERROR,
_("Plugin '%s' failed to load itself..."), plugin->filename);
diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h
index bc52c93..bc6189f 100644
--- a/src/plugins/plugin.h
+++ b/src/plugins/plugin.h
@@ -56,7 +56,7 @@ typedef struct _GPluginModuleClass GPluginModuleClass;
GType g_plugin_module_get_type(void);
/* Crée un module pour un greffon donné. */
-GPluginModule *g_plugin_module_new(const gchar *, GObject *);
+GPluginModule *g_plugin_module_new(const gchar *);
/* Fournit la description du greffon dans son intégralité. */
const plugin_interface *g_plugin_module_get_interface(const GPluginModule *);