summaryrefslogtreecommitdiff
path: root/libpurple/plugin.c
diff options
context:
space:
mode:
authorPaul Aurich <darkrain42@pidgin.im>2009-07-18 05:26:23 +0000
committerPaul Aurich <darkrain42@pidgin.im>2009-07-18 05:26:23 +0000
commit7fa5f311d59af1f59e15961726ee0b0bf1836d59 (patch)
treeb57b7fcb7c6d1f1ed7688c313563de1e2b19a716 /libpurple/plugin.c
parent31ab9d92b934b285c5a0bbf2714fbf8c338a32d1 (diff)
downloadpidgin-7fa5f311d59af1f59e15961726ee0b0bf1836d59.tar.gz
Add PURPLE_LEAKCHECK_HELP environment variable. See ChangeLog.
Diffstat (limited to 'libpurple/plugin.c')
-rw-r--r--libpurple/plugin.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libpurple/plugin.c b/libpurple/plugin.c
index c9baadfb40..d295cb92a5 100644
--- a/libpurple/plugin.c
+++ b/libpurple/plugin.c
@@ -870,8 +870,16 @@ purple_plugin_destroy(PurplePlugin *plugin)
if (plugin->info != NULL && plugin->info->destroy != NULL)
plugin->info->destroy(plugin);
- if (plugin->handle != NULL)
- g_module_close(plugin->handle);
+ /*
+ * I find it extremely useful to do this when using valgrind, as
+ * it keeps all the plugins open, meaning that valgrind is able to
+ * resolve symbol names in leak traces from plugins.
+ */
+ if (!g_getenv("PURPLE_LEAKCHECK_HELP"))
+ {
+ if (plugin->handle != NULL)
+ g_module_close(plugin->handle);
+ }
}
else
{