Tue, 16 Feb 2016 18:37:01 -0600
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;