diff libpurple/core.c @ 25375:fc8fd4fef166

Fix a crash on exit with a patch from im.pidgin.next.minor. applied changes from bab46e2dd9ebff11705234f606d600c9c78011bb through a515a270e1782f14b92ccfef56e731de38407ac6 aa60091ae5c724a0c287dff08ae64eead7163d67: Uninitialize the certificate API before unloading the SSL plugin. This prevents a crash at shutdown that I assume started happening when we re-arranged the uninit stuff. See the comment for more details. This change should probably be made in im.pidgin.pidgin. a515a270e1782f14b92ccfef56e731de38407ac6: Simplify, hoo-boy. Also don't unregister the schemes in purple_certificate_uninit(). The schemes should be unregistered by whoever registered them in the first place (the ssl plugins)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Tue, 27 Jan 2009 04:36:30 +0000
parents 7e2f27351358
children 1b8c18ab762f 8c8948b9f602
line wrap: on
line diff
--- a/libpurple/core.c	Mon Jan 26 02:39:50 2009 +0000
+++ b/libpurple/core.c	Tue Jan 27 04:36:30 2009 +0000
@@ -198,6 +198,14 @@
 	/* Transmission ends */
 	purple_connections_disconnect_all();
 
+	/*
+	 * Certificates must be destroyed before the SSL plugins, because
+	 * PurpleCertificates contain pointers to PurpleCertificateSchemes,
+	 * and the PurpleCertificateSchemes will be unregistered when the
+	 * SSL plugin is uninit.
+	 */
+	purple_certificate_uninit();
+
 	/* The SSL plugins must be uninit before they're unloaded */
 	purple_ssl_uninit();
 
@@ -220,7 +228,6 @@
 	purple_notify_uninit();
 	purple_conversations_uninit();
 	purple_connections_uninit();
-	purple_certificate_uninit();
 	purple_buddy_icons_uninit();
 	purple_accounts_uninit();
 	purple_savedstatuses_uninit();