--- a/finch/gntplugin.c Wed Oct 07 01:10:20 2020 -0500
+++ b/finch/gntplugin.c Wed Oct 07 01:14:43 2020 -0500
@@ -199,10 +199,11 @@
g_return_if_fail(plugin != NULL);
info = purple_plugin_get_info(plugin);
- ui_data = purple_plugin_info_get_ui_data(info);
+ ui_data = g_object_get_data(G_OBJECT(info), "finch-ui-data");
if (ui_data->type == FINCH_PLUGIN_UI_DATA_TYPE_REQUEST) {
purple_request_close(PURPLE_REQUEST_FIELDS,
@@ -214,8 +215,7 @@
gnt_widget_destroy(ui_data->u.window);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); @@ -346,8 +346,13 @@
PurplePlugin *plugin = _plugin;
PurplePluginInfo *info = purple_plugin_get_info(plugin);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); +close_plugin_info_request_cb(PurplePluginInfo *info) + g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); @@ -370,10 +375,11 @@
info = purple_plugin_get_info(plugin);
- if (purple_plugin_info_get_ui_data(info))
+ if (g_object_get_data(G_OBJECT(info), "finch-ui-data")) { ui_data = g_new0(FinchPluginUiData, 1);
- purple_plugin_info_set_ui_data(info, ui_data);
+ g_object_set_data_full(G_OBJECT(info), "finch-ui-data", ui_data, g_free); if (FINCH_IS_PLUGIN_INFO(info))
priv = finch_plugin_info_get_instance_private(
@@ -414,9 +420,8 @@
ui_data->type = FINCH_PLUGIN_UI_DATA_TYPE_REQUEST;
ui_data->u.request_handle = handle = pref_request_cb(plugin);
- purple_request_add_close_notify(handle,
- purple_callback_set_zero, &info->ui_data);
- purple_request_add_close_notify(handle, g_free, ui_data);
+ purple_request_add_close_notify( + handle, (GDestroyNotify)close_plugin_info_request_cb, info); else if (purple_plugin_info_get_pref_frame_cb(info))
@@ -431,8 +436,7 @@
purple_notify_info(plugin, _("Error"), _("No configuration "
"options for this plugin."), NULL, NULL);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "finch-ui-data", NULL); --- a/libpurple/plugins.c Wed Oct 07 01:10:20 2020 -0500
+++ b/libpurple/plugins.c Wed Oct 07 01:14:43 2020 -0500
@@ -572,22 +572,6 @@
-purple_plugin_info_set_ui_data(PurplePluginInfo *info, gpointer ui_data)
- g_return_if_fail(PURPLE_IS_PLUGIN_INFO(info));
- info->ui_data = ui_data;
-purple_plugin_info_get_ui_data(PurplePluginInfo *info)
- g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL);
/**************************************************************************
**************************************************************************/
--- a/libpurple/plugins.h Wed Oct 07 01:10:20 2020 -0500
+++ b/libpurple/plugins.h Wed Oct 07 01:14:43 2020 -0500
@@ -139,16 +139,11 @@
- * @ui_data: The UI data associated with the plugin. This is a convenience
- * field provided to the UIs -- it is not used by the libpurple core.
* Holds information about a plugin.
struct _PurplePluginInfo {
GPluginPluginInfo parent;
@@ -493,27 +488,6 @@
const gchar *purple_plugin_info_get_error(PurplePluginInfo *info);
- * purple_plugin_info_set_ui_data:
- * @info: The plugin's info instance.
- * @ui_data: A pointer to associate with this object.
- * Set the UI data associated with a plugin.
-void purple_plugin_info_set_ui_data(PurplePluginInfo *info, gpointer ui_data);
- * purple_plugin_info_get_ui_data:
- * @info: The plugin's info instance.
- * Returns the UI data associated with a plugin.
- * Returns: The UI data associated with this plugin. This is a
- * convenience field provided to the UIs--it is not
- * used by the libpurple core.
-gpointer purple_plugin_info_get_ui_data(PurplePluginInfo *info);
/**************************************************************************/
/**************************************************************************/
--- a/pidgin/pidginpluginsdialog.c Wed Oct 07 01:10:20 2020 -0500
+++ b/pidgin/pidginpluginsdialog.c Wed Oct 07 01:14:43 2020 -0500
@@ -116,7 +116,7 @@
PurplePluginInfo *info = PURPLE_PLUGIN_INFO(ginfo);
PidginPluginUiData *ui_data;
- ui_data = purple_plugin_info_get_ui_data(info);
+ ui_data = g_object_get_data(G_OBJECT(info), "pidgin-ui-data"); purple_debug_info("PidginPluginsDialog", "failed to find uidata\n");
@@ -136,8 +136,7 @@
purple_plugin_pref_frame_destroy(ui_data->u.frame.pref_frame);
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL); /******************************************************************************
@@ -186,6 +185,12 @@
+pidgin_plugins_dialog_request_close_cb(PurplePluginInfo *info) + g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL); pidgin_plugins_dialog_config_plugin_cb(GtkWidget *button, gpointer data) {
PidginPluginsDialog *dialog = PIDGIN_PLUGINS_DIALOG(data);
PidginPluginUiData *ui_data;
@@ -204,7 +209,7 @@
ginfo = gplugin_plugin_get_info(plugin);
info = PURPLE_PLUGIN_INFO(ginfo);
- if(purple_plugin_info_get_ui_data(info)) {
+ if (g_object_get_data(G_OBJECT(info), "pidgin-ui-data")) { g_object_unref(G_OBJECT(plugin));
@@ -213,7 +218,7 @@
pref_request_cb = purple_plugin_info_get_pref_request_cb(info);
ui_data = g_new0(PidginPluginUiData, 1);
- purple_plugin_info_set_ui_data(info, ui_data);
+ g_object_set_data_full(G_OBJECT(info), "pidgin-ui-data", ui_data, g_free); @@ -241,10 +246,9 @@
ui_data->type = PIDGIN_PLUGIN_UI_DATA_TYPE_REQUEST;
ui_data->u.request_handle = pref_request_cb(plugin);
- purple_request_add_close_notify(ui_data->u.request_handle,
- purple_callback_set_zero, &info->ui_data);
- purple_request_add_close_notify(ui_data->u.request_handle,
+ purple_request_add_close_notify( + ui_data->u.request_handle, + (GDestroyNotify)pidgin_plugins_dialog_request_close_cb, info); GtkWidget *box, *pdialog, *content, *sw;
@@ -254,8 +258,7 @@
purple_debug_error("gtkplugin",
"Failed to display prefs frame");
- purple_plugin_info_set_ui_data(info, NULL);
+ g_object_set_data(G_OBJECT(info), "pidgin-ui-data", NULL); g_object_unref(G_OBJECT(plugin));