Cleanup the plugin pref stuff so it works and doesn't crash

Tue, 16 Feb 2016 18:37:01 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 16 Feb 2016 18:37:01 -0600
changeset 37575
32611080681c
parent 37574
1786ba2950ce
child 37576
3cf4744a9521

Cleanup the plugin pref stuff so it works and doesn't crash

pidgin/gtkplugin.c file | annotate | diff | comparison | revisions
--- a/pidgin/gtkplugin.c	Mon Feb 15 22:32:50 2016 -0800
+++ b/pidgin/gtkplugin.c	Tue Feb 16 18:37:01 2016 -0600
@@ -205,28 +205,23 @@
 {
 	GtkWidget *config = NULL;
 	PurplePluginInfo *info;
-	PidginPluginInfoPrivate *priv = NULL;
+	PurplePluginPrefFrameCb pref_frame_cb = NULL;
 
-	g_return_val_if_fail(plugin != NULL, NULL);
+	g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), NULL);
 
 	info = purple_plugin_get_info(plugin);
-	if (PIDGIN_IS_PLUGIN_INFO(info))
-		priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(info);
-
-	if (priv)
-		config = priv->config_frame_cb(plugin);
+	if(!PURPLE_IS_PLUGIN_INFO(info))
+		return NULL;
 
-	if (!config && purple_plugin_info_get_pref_frame_cb(info))
-	{
-		PurplePluginPrefFrame *frame;
-		PurplePluginPrefFrameCb pref_frame_cb =
-				purple_plugin_info_get_pref_frame_cb(info);
+	pref_frame_cb = purple_plugin_info_get_pref_frame_cb(info);
+	if(pref_frame_cb) {
+		PurplePluginPrefFrame *frame = pref_frame_cb(plugin);
 
-		frame = pref_frame_cb(plugin);
+		if(frame) {
+			config = pidgin_plugin_pref_create_frame(frame);
 
-		config = pidgin_plugin_pref_create_frame(frame);
-
-		*purple_pref_frame = frame;
+			*purple_pref_frame = frame;
+		}
 	}
 
 	return config;

mercurial