summaryrefslogtreecommitdiff
path: root/src/plugins/pglist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/pglist.c')
-rw-r--r--src/plugins/pglist.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c
index bacb3ac..6b36d2f 100644
--- a/src/plugins/pglist.c
+++ b/src/plugins/pglist.c
@@ -35,6 +35,7 @@
#include <i18n.h>
+#include "dt.h"
#include "plugin-int.h"
#include "../common/extstr.h"
#include "../core/logs.h"
@@ -75,11 +76,15 @@ static void on_plugin_ref_toggle(gpointer, GPluginModule *, gboolean);
bool init_all_plugins(bool load)
{
+ bool result; /* Bilan à retourner */
char *edir; /* Répertoire de base effectif */
char *env; /* Contenu environnemental */
char *saveptr; /* Sauvegarde pour parcours */
char *udir; /* Répertoire supplémentaire ? */
+ result = init_chrysalide_dynamic_types();
+ if (!result) goto exit;
+
g_rw_lock_init(&_pg_lock);
edir = get_effective_directory_new(TDT_PLUGINS_LIB);
@@ -102,7 +107,9 @@ bool init_all_plugins(bool load)
if (load)
load_remaning_plugins();
- return true;
+ exit:
+
+ return result;
}
@@ -178,6 +185,8 @@ void exit_all_plugins(void)
g_rw_lock_clear(&_pg_lock);
+ exit_chrysalide_dynamic_types();
+
}
@@ -342,6 +351,9 @@ void _register_plugin(GPluginModule *plugin)
}
+ else
+ /* FIXME : leak(plugin); */;
+
}