diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-08-29 22:30:58 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-08-29 22:30:58 (GMT) |
commit | 6ba73df8224dc2a88fe5f37a331960936758036e (patch) | |
tree | 3db220cc946f3a23887016f3922fe94545e27620 /src | |
parent | d91239074b9042988d08093948059096942bdcfc (diff) |
Skipped the link to the global reference space when loading plugins.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/plugins/pglist.c | 13 | ||||
-rw-r--r-- | src/plugins/pglist.h | 2 | ||||
-rw-r--r-- | src/plugins/plugin-int.h | 4 | ||||
-rw-r--r-- | src/plugins/plugin.c | 12 | ||||
-rw-r--r-- | src/plugins/plugin.h | 2 |
6 files changed, 13 insertions, 22 deletions
@@ -249,7 +249,7 @@ int main(int argc, char **argv) if (!batch_mode) gtk_widget_show_now(editor); - init_all_plugins(G_OBJECT(editor)); + init_all_plugins(); config = get_main_configuration(); 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 *); |