--- a/gplugin/gplugin-manager.c Sun Sep 18 00:13:36 2022 -0500
+++ b/gplugin/gplugin-manager.c Sun Sep 18 00:31:31 2022 -0500
@@ -342,13 +342,13 @@
* @manager: The [class@GPlugin.Manager] instance.
* @plugin: The [iface@GPlugin.Plugin] that's about to be loaded.
- * emitted after a plugin is loaded.
+ * Emitted after a plugin is loaded. - signals[SIG_LOADED] = g_signal_new(
+ signals[SIG_LOADED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
@@ -360,20 +360,22 @@
* GPluginManager::load-plugin-failed:
* @manager: The [class@GPlugin.Manager] instance.
* @plugin: The [iface@GPlugin.Plugin] that failed to load.
+ * @error: The [struct@GLib.Error] of what went wrong. - * emitted after a plugin fails to load.
+ * Emitted after a plugin fails to load. - signals[SIG_LOAD_FAILED] = g_signal_new(
+ signals[SIG_LOAD_FAILED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
* GPluginManager::unloading-plugin
@@ -381,7 +383,7 @@
* @plugin: The [iface@GPlugin.Plugin] that's about to be unloaded.
* @error: Return address for a [struct@GLib.Error].
- * emitted before a plugin is unloaded.
+ * Emitted before a plugin is unloaded. * Return FALSE to stop unloading
@@ -405,11 +407,11 @@
* emitted after a plugin is successfully unloaded.
- signals[SIG_UNLOADED] = g_signal_new(
+ signals[SIG_UNLOADED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
@@ -426,17 +428,18 @@
* Emitted when @manager was asked to unload @plugin, but @plugin returned
* %FALSE when its unload function was called.
- signals[SIG_UNLOAD_FAILED] = g_signal_new(
+ signals[SIG_UNLOAD_FAILED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
* GPluginManager::loader-registered:
@@ -1683,7 +1686,7 @@
g_clear_error(&real_error);
g_signal_emit(manager, signals[SIG_LOADED], 0, plugin);
- g_signal_emit(manager, signals[SIG_LOAD_FAILED], 0, plugin);
+ g_signal_emit(manager, signals[SIG_LOAD_FAILED], 0, plugin, real_error); g_propagate_error(error, real_error);
@@ -1759,7 +1762,12 @@
g_clear_error(&real_error);
g_signal_emit(manager, signals[SIG_UNLOADED], 0, plugin);
- g_signal_emit(manager, signals[SIG_UNLOAD_FAILED], 0, plugin);
+ signals[SIG_UNLOAD_FAILED], g_propagate_error(error, real_error);
--- a/gplugin/tests/test-signals.c Sun Sep 18 00:13:36 2022 -0500
+++ b/gplugin/tests/test-signals.c Sun Sep 18 00:31:31 2022 -0500
@@ -117,6 +117,7 @@
test_gplugin_manager_signals_load_failed(
G_GNUC_UNUSED GObject *manager,
G_GNUC_UNUSED GPluginPlugin *plugin,
+ G_GNUC_UNUSED GError *error, TestGPluginManagerSignalsData *data = (TestGPluginManagerSignalsData *)d;
@@ -128,6 +129,7 @@
test_gplugin_manager_signals_unload_failed(
G_GNUC_UNUSED GObject *manager,
G_GNUC_UNUSED GPluginPlugin *plugin,
+ G_GNUC_UNUSED GError *error, TestGPluginManagerSignalsData *data = (TestGPluginManagerSignalsData *)d;