gplugin/gplugin

Make GPluginManager a final type

2021-10-12, Gary Kramlich
a1b0fd07c7f1
Parents 9a0e3740f9be
Children e3dbbef99710
Make GPluginManager a final type

* Use g_signal_new_class_handler to handle the accumulator based signals
* Remove the optional struct offset for the non accumulator based signals
* This all fixes the warnings from vapigen as well

Testing Done:
Ran the unit tests, gplugin-query, and gplugin-gtk3-viewer without issue.

Reviewed at https://reviews.imfreedom.org/r/1028/
--- a/gplugin/gplugin-manager.c Sun Oct 10 04:15:04 2021 -0500
+++ b/gplugin/gplugin-manager.c Tue Oct 12 01:10:51 2021 -0500
@@ -75,6 +75,10 @@
/******************************************************************************
* Structs
*****************************************************************************/
+struct _GPluginManager {
+ GObject parent;
+};
+
typedef struct {
GObject parent;
@@ -296,15 +300,9 @@
gplugin_manager_class_init(GPluginManagerClass *klass)
{
GObjectClass *obj_class = G_OBJECT_CLASS(klass);
- GPluginManagerClass *manager_class = GPLUGIN_MANAGER_CLASS(klass);
obj_class->finalize = gplugin_manager_finalize;
- manager_class->loading_plugin = gplugin_manager_loading_cb;
- manager_class->unloading_plugin = gplugin_manager_unloading_cb;
-
- /* signals */
-
/**
* GPluginManager::loading-plugin:
* @manager: The [class@GPlugin.Manager] instance.
@@ -315,11 +313,11 @@
*
* Return FALSE to stop loading
*/
- signals[SIG_LOADING] = g_signal_new(
+ signals[SIG_LOADING] = g_signal_new_class_handler(
"loading-plugin",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, loading_plugin),
+ G_CALLBACK(gplugin_manager_loading_cb),
gplugin_boolean_accumulator,
NULL,
NULL,
@@ -337,9 +335,9 @@
*/
signals[SIG_LOADED] = g_signal_new(
"loaded-plugin",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, loaded_plugin),
+ 0,
NULL,
NULL,
NULL,
@@ -356,9 +354,9 @@
*/
signals[SIG_LOAD_FAILED] = g_signal_new(
"load-plugin-failed",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, load_failed),
+ 0,
NULL,
NULL,
NULL,
@@ -376,11 +374,11 @@
*
* Return FALSE to stop unloading
*/
- signals[SIG_UNLOADING] = g_signal_new(
+ signals[SIG_UNLOADING] = g_signal_new_class_handler(
"unloading-plugin",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, unloading_plugin),
+ G_CALLBACK(gplugin_manager_unloading_cb),
gplugin_boolean_accumulator,
NULL,
NULL,
@@ -398,9 +396,9 @@
*/
signals[SIG_UNLOADED] = g_signal_new(
"unloaded-plugin",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, unloaded_plugin),
+ 0,
NULL,
NULL,
NULL,
@@ -419,9 +417,9 @@
*/
signals[SIG_UNLOAD_FAILED] = g_signal_new(
"unload-plugin-failed",
- G_OBJECT_CLASS_TYPE(manager_class),
+ G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPluginManagerClass, unload_plugin_failed),
+ 0,
NULL,
NULL,
NULL,
--- a/gplugin/gplugin-manager.h Sun Oct 10 04:15:04 2021 -0500
+++ b/gplugin/gplugin-manager.h Tue Oct 12 01:10:51 2021 -0500
@@ -30,7 +30,7 @@
G_BEGIN_DECLS
#define GPLUGIN_TYPE_MANAGER (gplugin_manager_get_type())
-G_DECLARE_DERIVABLE_TYPE(
+G_DECLARE_FINAL_TYPE(
GPluginManager,
gplugin_manager,
GPLUGIN,
@@ -42,29 +42,6 @@
GSList *plugins,
gpointer data);
-struct _GPluginManagerClass {
- /*< private >*/
- GObjectClass parent;
-
- /*< public >*/
- gboolean (*loading_plugin)(
- GPluginManager *manager,
- GPluginPlugin *plugin,
- GError **error);
- void (*loaded_plugin)(GPluginManager *manager, GPluginPlugin *plugin);
- void (*load_failed)(GPluginManager *manager, GPluginPlugin *plugin);
- gboolean (*unloading_plugin)(
- GPluginManager *manager,
- GPluginPlugin *plugin,
- GError **error);
- void (*unloaded_plugin)(GPluginManager *manager, GPluginPlugin *plugin);
- void (
- *unload_plugin_failed)(GPluginManager *manager, GPluginPlugin *plugin);
-
- /*< private >*/
- gpointer reserved[8];
-};
-
void gplugin_manager_append_path(GPluginManager *manager, const gchar *path);
void gplugin_manager_prepend_path(GPluginManager *manager, const gchar *path);
void gplugin_manager_remove_path(GPluginManager *manager, const gchar *path);