summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2018-07-23 20:23:01 +0200
committerFlorian Müllner <fmuellner@gnome.org>2018-07-31 23:40:01 +0200
commit43eb724b94514f3905b5a2535f9c0a6a6ea10e11 (patch)
treef68b746c9cd1a4dc4bf3244fc054cf0048ab29e1
parent3d75b48d50fe7773b3ad2231732f897c0a8a7874 (diff)
downloadmutter-43eb724b94514f3905b5a2535f9c0a6a6ea10e11.tar.gz
plugin: Simplify META_PLUGIN_DECLARE() macro
It's mostly boilerplate that G_DEFINE_DYNAMIC_TYPE() can take care of, so use that internally. https://gitlab.gnome.org/GNOME/mutter/merge_requests/176
-rw-r--r--src/meta/meta-plugin.h58
1 files changed, 6 insertions, 52 deletions
diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h
index afeea133e..f973ec6ce 100644
--- a/src/meta/meta-plugin.h
+++ b/src/meta/meta-plugin.h
@@ -312,63 +312,17 @@ struct _MetaPluginVersion
META_PLUGIN_API_VERSION \
}; \
\
- static GType g_define_type_id = 0; \
+ G_DEFINE_DYNAMIC_TYPE(ObjectName, object_name, META_TYPE_PLUGIN) \
\
- /* Prototypes */ \
- G_MODULE_EXPORT \
- GType object_name##_get_type (void); \
- \
- G_MODULE_EXPORT \
- GType object_name##_register_type (GTypeModule *type_module); \
- \
- G_MODULE_EXPORT \
- GType meta_plugin_register_type (GTypeModule *type_module); \
- \
- GType \
- object_name##_get_type (void) \
- { \
- return g_define_type_id; \
- } \
- \
- static void object_name##_init (ObjectName *self); \
- static void object_name##_class_init (ObjectName##Class *klass); \
- static gpointer object_name##_parent_class = NULL; \
- static void object_name##_class_intern_init (gpointer klass) \
- { \
- object_name##_parent_class = g_type_class_peek_parent (klass); \
- object_name##_class_init ((ObjectName##Class *) klass); \
- } \
- \
- GType \
- object_name##_register_type (GTypeModule *type_module) \
- { \
- static const GTypeInfo our_info = \
- { \
- sizeof (ObjectName##Class), \
- NULL, /* base_init */ \
- NULL, /* base_finalize */ \
- (GClassInitFunc) object_name##_class_intern_init, \
- NULL, \
- NULL, /* class_data */ \
- sizeof (ObjectName), \
- 0, /* n_preallocs */ \
- (GInstanceInitFunc) object_name##_init \
- }; \
- \
- g_define_type_id = g_type_module_register_type (type_module, \
- META_TYPE_PLUGIN, \
- #ObjectName, \
- &our_info, \
- 0); \
- \
- \
- return g_define_type_id; \
- } \
+ /* Unused, but required by G_DEFINE_DYNAMIC_TYPE */ \
+ static void \
+ object_name##_class_finalize (ObjectName##Class *klass) {} \
\
G_MODULE_EXPORT GType \
meta_plugin_register_type (GTypeModule *type_module) \
{ \
- return object_name##_register_type (type_module); \
+ object_name##_register_type (type_module); \
+ return object_name##_get_type (); \
} \
void