libpurple/purplecredentialmanager.c

changeset 41802
487d13861ae4
parent 41734
a708bd1edc77
child 41976
49969fa9a664
--- a/libpurple/purplecredentialmanager.c	Sun Oct 09 04:50:08 2022 -0500
+++ b/libpurple/purplecredentialmanager.c	Mon Oct 10 00:26:06 2022 -0500
@@ -443,15 +443,18 @@
 
 	g_clear_object(&previous);
 
-	/* Finally update the preference. */
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
-	                                       purple_core_get_settings_backend());
+	/* Finally update the preference if we were given a new id. We assume, that
+	 * a NULL id means we're shutting down and thus shouldn't update the
+	 * setting.
+	 */
 	if(id != NULL) {
+		settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
+		                                       purple_core_get_settings_backend());
+
 		g_settings_set_string(settings, "active-provider", id);
-	} else {
-		g_settings_reset(settings, "active-provider");
+
+		g_object_unref(settings);
 	}
-	g_object_unref(settings);
 
 	purple_debug_info("credential-manager", "set active provider to '%s'", id);
 

mercurial