libpurple/protocols/jabber/jabber.c

changeset 39894
7eab91ea30a1
parent 39760
217330c81a30
child 39913
ce96d4639dc7
--- a/libpurple/protocols/jabber/jabber.c	Thu Sep 12 20:51:15 2019 -0400
+++ b/libpurple/protocols/jabber/jabber.c	Sun Sep 15 17:11:46 2019 -0400
@@ -4091,8 +4091,10 @@
 }
 
 static void
-jabber_protocol_init(PurpleProtocol *protocol)
+jabber_protocol_init(JabberProtocol *self)
 {
+	PurpleProtocol *protocol = PURPLE_PROTOCOL(self);
+
 	protocol->id        = "prpl-jabber";
 	protocol->name      = "XMPP";
 	protocol->options   = OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME |
@@ -4109,12 +4111,19 @@
 }
 
 static void
-jabber_protocol_class_init(PurpleProtocolClass *klass)
+jabber_protocol_class_init(JabberProtocolClass *klass)
 {
-	klass->login        = jabber_login;
-	klass->close        = jabber_close;
-	klass->status_types = jabber_status_types;
-	klass->list_icon    = jabber_list_icon;
+	PurpleProtocolClass *protocol_class = PURPLE_PROTOCOL_CLASS(klass);
+
+	protocol_class->login = jabber_login;
+	protocol_class->close = jabber_close;
+	protocol_class->status_types = jabber_status_types;
+	protocol_class->list_icon = jabber_list_icon;
+}
+
+static void
+jabber_protocol_class_finalize(G_GNUC_UNUSED JabberProtocolClass *klass)
+{
 }
 
 static void
@@ -4210,36 +4219,36 @@
 	xfer_iface->new_xfer    = jabber_si_new_xfer;
 }
 
-PURPLE_DEFINE_TYPE_EXTENDED(
-	JabberProtocol, jabber_protocol, PURPLE_TYPE_PROTOCOL, G_TYPE_FLAG_ABSTRACT,
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_CLIENT,
-	                                  jabber_protocol_client_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_SERVER,
-	                                  jabber_protocol_server_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_IM,
-	                                  jabber_protocol_im_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_CHAT,
-	                                  jabber_protocol_chat_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_PRIVACY,
-	                                  jabber_protocol_privacy_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_ROOMLIST,
-	                                  jabber_protocol_roomlist_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_ATTENTION,
-	                                  jabber_protocol_attention_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_MEDIA,
-	                                  jabber_protocol_media_iface_init)
-
-	PURPLE_IMPLEMENT_INTERFACE_STATIC(PURPLE_TYPE_PROTOCOL_XFER,
-	                                  jabber_protocol_xfer_iface_init)
-);
+G_DEFINE_DYNAMIC_TYPE_EXTENDED(
+        JabberProtocol, jabber_protocol, PURPLE_TYPE_PROTOCOL,
+        G_TYPE_FLAG_ABSTRACT,
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_CLIENT,
+                                      jabber_protocol_client_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_SERVER,
+                                      jabber_protocol_server_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_IM,
+                                      jabber_protocol_im_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_CHAT,
+                                      jabber_protocol_chat_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_PRIVACY,
+                                      jabber_protocol_privacy_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_ROOMLIST,
+                                      jabber_protocol_roomlist_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_ATTENTION,
+                                      jabber_protocol_attention_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_MEDIA,
+                                      jabber_protocol_media_iface_init)
+
+        G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_XFER,
+                                      jabber_protocol_xfer_iface_init));
 
 static PurplePluginInfo *
 plugin_query(GError **error)
@@ -4274,10 +4283,10 @@
 	jingle_rtp_register(plugin);
 #endif
 
-	jabber_protocol_register_type(plugin);
-
-	gtalk_protocol_register_type(plugin);
-	xmpp_protocol_register_type(plugin);
+	jabber_protocol_register_type(G_TYPE_MODULE(plugin));
+
+	gtalk_protocol_register(plugin);
+	xmpp_protocol_register(plugin);
 
 	jabber_si_xfer_register(G_TYPE_MODULE(plugin));
 

mercurial