--- a/libpurple/purpleprotocolmanager.c Wed Oct 20 02:43:32 2021 -0500
+++ b/libpurple/purpleprotocolmanager.c Wed Oct 20 02:55:04 2021 -0500
@@ -28,12 +28,13 @@
static guint signals[N_SIGNALS] = {0, };
+struct _PurpleProtocolManager { -} PurpleProtocolManagerPrivate;
-G_DEFINE_TYPE_WITH_PRIVATE(PurpleProtocolManager, purple_protocol_manager,
+G_DEFINE_TYPE(PurpleProtocolManager, purple_protocol_manager, G_TYPE_OBJECT); static PurpleProtocolManager *default_manager = NULL;
@@ -43,24 +44,18 @@
purple_protocol_manager_finalize(GObject *obj) {
PurpleProtocolManager *manager = NULL;
- PurpleProtocolManagerPrivate *priv = NULL;
manager = PURPLE_PROTOCOL_MANAGER(obj);
- priv = purple_protocol_manager_get_instance_private(manager);
- g_clear_pointer(&priv->protocols, g_hash_table_destroy);
+ g_clear_pointer(&manager->protocols, g_hash_table_destroy); G_OBJECT_CLASS(purple_protocol_manager_parent_class)->finalize(obj);
purple_protocol_manager_init(PurpleProtocolManager *manager) {
- PurpleProtocolManagerPrivate *priv = NULL;
- priv = purple_protocol_manager_get_instance_private(manager);
- priv->protocols = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+ manager->protocols = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, @@ -78,11 +73,11 @@
- signals[SIG_REGISTERED] = g_signal_new(
+ signals[SIG_REGISTERED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
- G_STRUCT_OFFSET(PurpleProtocolManagerClass, registered),
@@ -99,11 +94,11 @@
- signals[SIG_UNREGISTERED] = g_signal_new(
+ signals[SIG_UNREGISTERED] = g_signal_new_class_handler( G_OBJECT_CLASS_TYPE(klass),
- G_STRUCT_OFFSET(PurpleProtocolManagerClass, unregistered),
@@ -139,23 +134,21 @@
purple_protocol_manager_register(PurpleProtocolManager *manager,
PurpleProtocol *protocol, GError **error)
- PurpleProtocolManagerPrivate *priv = NULL;
g_return_val_if_fail(PURPLE_IS_PROTOCOL_MANAGER(manager), FALSE);
g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), FALSE);
- priv = purple_protocol_manager_get_instance_private(manager);
id = purple_protocol_get_id(protocol);
- if(g_hash_table_lookup(priv->protocols, id) != NULL) {
+ if(g_hash_table_lookup(manager->protocols, id) != NULL) { g_set_error(error, PURPLE_PROTOCOL_MANAGER_DOMAIN, 0,
_("protocol %s is already registered"), id);
- g_hash_table_insert(priv->protocols, g_strdup(id), g_object_ref(protocol));
+ g_hash_table_insert(manager->protocols, g_strdup(id), + g_object_ref(protocol)); g_signal_emit(G_OBJECT(manager), signals[SIG_REGISTERED], 0, protocol);
@@ -166,7 +159,6 @@
purple_protocol_manager_unregister(PurpleProtocolManager *manager,
PurpleProtocol *protocol, GError **error)
- PurpleProtocolManagerPrivate *priv = NULL;
@@ -180,10 +172,9 @@
g_object_ref(G_OBJECT(protocol));
- priv = purple_protocol_manager_get_instance_private(manager);
id = purple_protocol_get_id(protocol);
- if(g_hash_table_remove(priv->protocols, id)) {
+ if(g_hash_table_remove(manager->protocols, id)) { g_signal_emit(G_OBJECT(manager), signals[SIG_UNREGISTERED], 0,
@@ -202,15 +193,12 @@
purple_protocol_manager_find(PurpleProtocolManager *manager, const gchar *id) {
- PurpleProtocolManagerPrivate *priv = NULL;
g_return_val_if_fail(PURPLE_IS_PROTOCOL_MANAGER(manager), NULL);
g_return_val_if_fail(id != NULL, NULL);
- priv = purple_protocol_manager_get_instance_private(manager);
- value = g_hash_table_lookup(priv->protocols, id);
+ value = g_hash_table_lookup(manager->protocols, id); @@ -224,15 +212,12 @@
- PurpleProtocolManagerPrivate *priv = NULL;
g_return_if_fail(PURPLE_IS_PROTOCOL_MANAGER(manager));
g_return_if_fail(func != NULL);
- priv = purple_protocol_manager_get_instance_private(manager);
- g_hash_table_iter_init(&iter, priv->protocols);
+ g_hash_table_iter_init(&iter, manager->protocols); while(g_hash_table_iter_next(&iter, NULL, &value)) {
func(PURPLE_PROTOCOL(value), data);
@@ -240,11 +225,7 @@
purple_protocol_manager_get_all(PurpleProtocolManager *manager) {
- PurpleProtocolManagerPrivate *priv = NULL;
g_return_val_if_fail(PURPLE_IS_PROTOCOL_MANAGER(manager), NULL);
- priv = purple_protocol_manager_get_instance_private(manager);
- return g_hash_table_get_values(priv->protocols);
+ return g_hash_table_get_values(manager->protocols); --- a/libpurple/purpleprotocolmanager.h Wed Oct 20 02:43:32 2021 -0500
+++ b/libpurple/purpleprotocolmanager.h Wed Oct 20 02:55:04 2021 -0500
@@ -55,8 +55,8 @@
* The standard _get_type macro for #PurpleProtocolManager.
#define PURPLE_TYPE_PROTOCOL_MANAGER (purple_protocol_manager_get_type())
-G_DECLARE_DERIVABLE_TYPE(PurpleProtocolManager, purple_protocol_manager,
- PURPLE, PROTOCOL_MANAGER, GObject)
+G_DECLARE_FINAL_TYPE(PurpleProtocolManager, purple_protocol_manager, PURPLE, + PROTOCOL_MANAGER, GObject) @@ -67,28 +67,6 @@
- * PurpleProtocolManagerClass:
- * @registered: The default signal handler for when a protocol is registered.
- * @unregistered: The default signal handler for when a protocol is
- * The class structure for #PurpleProtocolManager.
-struct _PurpleProtocolManagerClass {
- void (*registered)(PurpleProtocolManager *manager, PurpleProtocol *protocol);
- void (*unregistered)(PurpleProtocolManager *manager, PurpleProtocol *protocol);
* PurpleProtocolManagerForeachFunc:
* @protocol: The #PurpleProtocol instance.
* @data: User supplied data.