diff options
Diffstat (limited to 'src/plugins/pglist.c')
-rw-r--r-- | src/plugins/pglist.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c index 14e6b48..bca3e6a 100644 --- a/src/plugins/pglist.c +++ b/src/plugins/pglist.c @@ -263,6 +263,7 @@ void add_plugin_to_main_list(GPluginModule *plugin) * * * Paramètres : binary = binaire chargé en mémoire à traiter. * * action = fonctionnalité recherchée. * +* lock = indique si l'exécution n'est pas celle principale. * * * * Description : Opère une action donnée sur un binaire défini. * * * @@ -272,12 +273,21 @@ void add_plugin_to_main_list(GPluginModule *plugin) * * ******************************************************************************/ -void run_plugins_on_binary(GLoadedBinary *binary, PluginAction action) +void run_plugins_on_binary(GLoadedBinary *binary, PluginAction action, bool lock) { size_t i; /* Boucle de parcours */ + if (lock) + gdk_threads_enter(); + for (i = 0; i < _list.plugins_count; i++) if (g_plugin_module_get_action(_list.plugins[i]) & action) g_plugin_module_execute_action_on_binary(_list.plugins[i], binary, action); + if (lock) + { + gdk_flush(); + gdk_threads_leave(); + } + } |