changeset 40940:f8b982789e1e

Remove purple_plugins_get_handle and the associated signals Testing Done: Ran and load a plugin that added stuff to the plugins menu and made sure there were no warnings/errors on exit. Reviewed at https://reviews.imfreedom.org/r/739/
author Gary Kramlich <grim@reaperworld.com>
date Thu, 10 Jun 2021 18:20:35 -0500
parents bf7c5e88e5e7
children 8adffed7a99a
files ChangeLog.API libpurple/plugins.c libpurple/plugins.h
diffstat 3 files changed, 11 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.API	Thu Jun 10 17:18:56 2021 -0500
+++ b/ChangeLog.API	Thu Jun 10 18:20:35 2021 -0500
@@ -425,10 +425,13 @@
 		* purple_plugin_probe
 		* purple_plugin_register
 		* purple_plugin_reload
+		* purple_plugins:plugin-load signal
+		* purple-plugins:plugin-unload signal
 		* purple_plugins_destroy_all
 		* purple_plugins_enabled
 		* purple_plugins_find_with_basename
 		* purple_plugins_find_with_name
+		* purple_plugins_get_handle
 		* purple_plugins_get_protocols
 		* purple_plugins_get_search_paths
 		* purple_plugins_register_load_notify_cb
--- a/libpurple/plugins.c	Thu Jun 10 17:18:56 2021 -0500
+++ b/libpurple/plugins.c	Thu Jun 10 18:20:35 2021 -0500
@@ -131,7 +131,6 @@
 
 	purple_debug_info("plugins", "Loaded plugin %s\n", filename);
 
-	purple_signal_emit(purple_plugins_get_handle(), "plugin-load", plugin);
 	g_free(filename);
 }
 
@@ -181,8 +180,6 @@
 	loaded_plugins     = g_list_remove(loaded_plugins, plugin);
 	plugins_to_disable = g_list_remove(plugins_to_disable, plugin);
 
-	purple_signal_emit(purple_plugins_get_handle(), "plugin-unload", plugin);
-
 	purple_prefs_disconnect_by_handle(plugin);
 }
 
@@ -791,27 +788,12 @@
 /**************************************************************************
  * Plugins Subsystem API
  **************************************************************************/
-void *
-purple_plugins_get_handle(void)
-{
-	static int handle;
-
-	return &handle;
-}
-
 void
 purple_plugins_init(void)
 {
-	void *handle = purple_plugins_get_handle();
+	GObject *manager = NULL;
 	const gchar *search_path;
 
-	purple_signal_register(handle, "plugin-load",
-	                       purple_marshal_VOID__POINTER,
-	                       G_TYPE_NONE, 1, PURPLE_TYPE_PLUGIN);
-	purple_signal_register(handle, "plugin-unload",
-	                       purple_marshal_VOID__POINTER,
-	                       G_TYPE_NONE, 1, PURPLE_TYPE_PLUGIN);
-
 	gplugin_init(GPLUGIN_CORE_FLAGS_NONE);
 
 	search_path = g_getenv("PURPLE_PLUGIN_PATH");
@@ -835,13 +817,14 @@
 		purple_debug_info("plugins", "PURPLE_PLUGINS_SKIP environment variable set, skipping normal plugin paths");
 	}
 
-	g_signal_connect(gplugin_manager_get_instance(), "loading-plugin",
-	                 G_CALLBACK(plugin_loading_cb), NULL);
-	g_signal_connect(gplugin_manager_get_instance(), "loaded-plugin",
-	                 G_CALLBACK(plugin_loaded_cb), NULL);
-	g_signal_connect(gplugin_manager_get_instance(), "unloading-plugin",
+	manager = gplugin_manager_get_instance();
+	g_signal_connect(manager, "loading-plugin", G_CALLBACK(plugin_loading_cb),
+	                 NULL);
+	g_signal_connect(manager, "loaded-plugin", G_CALLBACK(plugin_loaded_cb),
+	                 NULL);
+	g_signal_connect(manager, "unloading-plugin",
 	                 G_CALLBACK(plugin_unloading_cb), NULL);
-	g_signal_connect(gplugin_manager_get_instance(), "unloaded-plugin",
+	g_signal_connect(manager, "unloaded-plugin",
 	                 G_CALLBACK(plugin_unloaded_cb), NULL);
 
 	purple_plugins_refresh();
@@ -850,14 +833,9 @@
 void
 purple_plugins_uninit(void)
 {
-	void *handle = purple_plugins_get_handle();
-
 	purple_debug_info("plugins", "Unloading all plugins\n");
 	while (loaded_plugins != NULL)
 		purple_plugin_unload(loaded_plugins->data, NULL);
 
-	purple_signals_disconnect_by_handle(handle);
-	purple_signals_unregister_by_instance(handle);
-
 	gplugin_uninit();
 }
--- a/libpurple/plugins.h	Thu Jun 10 17:18:56 2021 -0500
+++ b/libpurple/plugins.h	Thu Jun 10 18:20:35 2021 -0500
@@ -604,15 +604,6 @@
 /**************************************************************************/
 
 /**
- * purple_plugins_get_handle:
- *
- * Returns the plugin subsystem handle.
- *
- * Returns: (transfer none): The plugin sybsystem handle.
- */
-void *purple_plugins_get_handle(void);
-
-/**
  * purple_plugins_init:
  *
  * Initializes the plugin subsystem