Clean up some reference counting, doc comments and a build tweak

Thu, 21 Nov 2019 20:40:08 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 21 Nov 2019 20:40:08 -0600
changeset 40225
b6f1592a07ec
parent 40224
6b658d1458c8
child 40226
00908349dea9

Clean up some reference counting, doc comments and a build tweak

pidgin/meson.build file | annotate | diff | comparison | revisions
pidgin/pidginplugininfo.h file | annotate | diff | comparison | revisions
pidgin/pidginpluginsdialog.c file | annotate | diff | comparison | revisions
pidgin/pidginpluginsdialog.h file | annotate | diff | comparison | revisions
--- a/pidgin/meson.build	Fri Nov 15 00:23:41 2019 -0600
+++ b/pidgin/meson.build	Thu Nov 21 20:40:08 2019 -0600
@@ -198,7 +198,7 @@
 	    filebase : 'pidgin-3',
 	    subdirs : 'pidgin-3',
 	    libraries : [libpidgin],
-	    requires : ['gtk+-3.0', 'purple-3', 'talkatu'],
+	    requires : ['gtk+-3.0', 'purple-3', 'talkatu', 'gplugin-gtk'],
 	    variables : ['plugindir=${libdir}/pidgin-@0@'.format(purple_major_version)])
 
 	if INSTALL_I18N
@@ -228,7 +228,7 @@
 
 		gnome.generate_gir(libpidgin,
 			sources : introspection_sources,
-			includes : ['GObject-2.0', 'Gtk-3.0', libpurple_gir[0], talkatu_gir, gplugin_gir],
+			includes : ['GObject-2.0', 'Gtk-3.0', libpurple_gir[0], talkatu_gir, gplugin_gir, gplugin_gtk_gir],
 			namespace : 'Pidgin',
 			symbol_prefix : 'pidgin',
 			identifier_prefix : 'Pidgin',
--- a/pidgin/pidginplugininfo.h	Fri Nov 15 00:23:41 2019 -0600
+++ b/pidgin/pidginplugininfo.h	Thu Nov 21 20:40:08 2019 -0600
@@ -51,6 +51,8 @@
  * See purple_plugin_info_new().
  *
  * Returns: A new #PidginPluginInfo instance.
+ *
+ * Since: 3.0.0
  */
 PidginPluginInfo *pidgin_plugin_info_new(const char *first_property, ...)
                   G_GNUC_NULL_TERMINATED;
--- a/pidgin/pidginpluginsdialog.c	Fri Nov 15 00:23:41 2019 -0600
+++ b/pidgin/pidginpluginsdialog.c	Thu Nov 21 20:40:08 2019 -0600
@@ -169,6 +169,8 @@
 		GTK_WIDGET(dialog->configure_plugin_button),
 		pidgin_plugins_dialog_plugin_has_config(plugin)
 	);
+
+	g_object_unref(G_OBJECT(plugin));
 }
 
 static void
@@ -202,6 +204,7 @@
 	info = PURPLE_PLUGIN_INFO(ginfo);
 
 	if(purple_plugin_info_get_ui_data(info)) {
+		g_object_unref(G_OBJECT(plugin));
 		return;
 	}
 
@@ -218,8 +221,9 @@
 		ui_data->u.frame.pref_frame = pref_frame_cb(plugin);
 	}
 
-	if (pref_request_cb)
+	if (pref_request_cb) {
 		prefs_count++;
+	}
 
 	if (prefs_count > 1) {
 		purple_debug_warning("gtkplugin",
@@ -251,6 +255,7 @@
 				"Failed to display prefs frame");
 			g_free(ui_data);
 			purple_plugin_info_set_ui_data(info, NULL);
+			g_object_unref(G_OBJECT(plugin));
 			return;
 		}
 		gtk_widget_set_vexpand(box, TRUE);
@@ -282,6 +287,7 @@
 		                             GPLUGIN_PLUGIN_INFO(info))));
 		gtk_widget_show_all(pdialog);
 	}
+	g_object_unref(G_OBJECT(plugin));
 }
 
 /******************************************************************************
--- a/pidgin/pidginpluginsdialog.h	Fri Nov 15 00:23:41 2019 -0600
+++ b/pidgin/pidginpluginsdialog.h	Thu Nov 21 20:40:08 2019 -0600
@@ -38,6 +38,15 @@
 G_DECLARE_FINAL_TYPE(PidginPluginsDialog, pidgin_plugins_dialog, PIDGIN,
 		PLUGINS_DIALOG, GtkDialog)
 
+/**
+ * pidgin_plugins_dialog_new:
+ *
+ * Creates a new instance of #PidginPluginsDialog.
+ *
+ * Returns: (transfer full): The new #PidginPluginsDialog.
+ *
+ * Since: 3.0.0
+ */
 GtkWidget *pidgin_plugins_dialog_new(void);
 
 G_END_DECLS

mercurial