libpurple/protocols/ircv3/purpleircv3core.c

changeset 42229
605f8cba9704
parent 41951
00c472cd0fff
child 42568
31e8c7c92e2f
--- a/libpurple/protocols/ircv3/purpleircv3core.c	Sat Jul 01 01:52:29 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3core.c	Sat Jul 01 02:01:14 2023 -0500
@@ -58,6 +58,7 @@
 		"website", PURPLE_WEBSITE,
 		"abi-version", PURPLE_ABI_VERSION,
 		"flags", flags,
+		"bind-global", TRUE,
 		NULL);
 }
 
@@ -76,13 +77,16 @@
 	purple_ircv3_connection_register(GPLUGIN_NATIVE_PLUGIN(plugin));
 	purple_ircv3_protocol_register(GPLUGIN_NATIVE_PLUGIN(plugin));
 
-	manager = purple_protocol_manager_get_default();
+	ircv3_protocol = purple_ircv3_protocol_new();
 
-	ircv3_protocol = purple_ircv3_protocol_new();
-	if(!purple_protocol_manager_register(manager, ircv3_protocol, error)) {
-		g_clear_object(&ircv3_protocol);
+	manager = purple_protocol_manager_get_default();
+	/* Manager can be NULL when we're generating the GIR stuff. */
+	if(PURPLE_IS_PROTOCOL_MANAGER(manager)) {
+		if(!purple_protocol_manager_register(manager, ircv3_protocol, error)) {
+			g_clear_object(&ircv3_protocol);
 
-		return FALSE;
+			return FALSE;
+		}
 	}
 
 	return TRUE;
@@ -103,8 +107,13 @@
 	}
 
 	manager = purple_protocol_manager_get_default();
-	if(!purple_protocol_manager_unregister(manager, ircv3_protocol, error)) {
-		return FALSE;
+	/* Manager can be NULL when we're generating the GIR stuff. */
+	if(PURPLE_IS_PROTOCOL_MANAGER(manager)) {
+		if(!purple_protocol_manager_unregister(manager, ircv3_protocol,
+		                                       error))
+		{
+			return FALSE;
+		}
 	}
 
 	g_clear_object(&ircv3_protocol);

mercurial