/soc/2013/ankitkv/gobjectification: f4f8d1914a65: unref plugin i...

Ankit Vani a at nevitus.org
Tue Jul 30 18:33:18 EDT 2013


Changeset: f4f8d1914a65649ffbb1117492d31adb3c02e8b7
Author:	 Ankit Vani <a at nevitus.org>
Date:	 2013-07-31 03:59 +0530
Branch:	 soc.2013.gobjectification.plugins
URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/f4f8d1914a65

Description:

unref plugin info after using gplugin_plugin_get_info()

diffstat:

 libpurple/keyring.c |  9 +++++++--
 libpurple/plugins.c |  3 +++
 2 files changed, 10 insertions(+), 2 deletions(-)

diffs (41 lines):

diff --git a/libpurple/keyring.c b/libpurple/keyring.c
--- a/libpurple/keyring.c
+++ b/libpurple/keyring.c
@@ -1286,10 +1286,15 @@ purple_keyring_init(void)
 		GPluginPlugin *plugin = GPLUGIN_PLUGIN(it->data);
 		GPluginPluginInfo *info = gplugin_plugin_get_info(plugin);
 
-		if (info == NULL || gplugin_plugin_info_get_id(info) == NULL)
+		if (info == NULL || gplugin_plugin_info_get_id(info) == NULL) {
+			g_object_unref(info);
 			continue;
-		if (strncmp(gplugin_plugin_info_get_id(info), "keyring-", 8) != 0)
+		}
+		if (strncmp(gplugin_plugin_info_get_id(info), "keyring-", 8) != 0) {
+			g_object_unref(info);
 			continue;
+		}
+		g_object_unref(info);
 
 		if (purple_plugin_is_loaded(plugin))
 			continue;
diff --git a/libpurple/plugins.c b/libpurple/plugins.c
--- a/libpurple/plugins.c
+++ b/libpurple/plugins.c
@@ -255,6 +255,8 @@ purple_plugins_save_loaded(const char *k
 		GPluginPluginInfo *plugin_info = gplugin_plugin_get_info(plugin);
 
 		ids = g_list_append(ids, (gchar *)gplugin_plugin_info_get_id(plugin_info));
+
+		g_object_unref(plugin_info);
 	}
 
 	purple_prefs_set_string_list(key, ids);
@@ -284,6 +286,7 @@ purple_plugins_load_saved(const char *ke
 		if (plugin) {
 			purple_debug_info("plugins", "Loading saved plugin %s\n", id);
 			purple_plugin_load(plugin);
+			g_object_unref(plugin);
 		} else {
 			purple_debug_error("plugins", "Unable to find saved plugin %s\n", id);
 		}



More information about the Commits mailing list