--- a/libpurple/account.c Tue Sep 20 02:08:42 2022 -0500
+++ b/libpurple/account.c Tue Sep 20 02:09:28 2022 -0500
@@ -501,10 +501,7 @@
account, old_err, new_err);
purple_accounts_schedule_save();
- g_free(old_err->description);
+ g_clear_pointer(&old_err, purple_connection_error_info_free); /******************************************************************************
@@ -857,14 +854,12 @@
PurpleAccount *account = PURPLE_ACCOUNT(object);
- if (!purple_account_is_disconnected(account))
+ if (!purple_account_is_disconnected(account)) { purple_account_disconnect(account);
- if (account->presence) {
- g_object_unref(account->presence);
- account->presence = NULL;
+ g_clear_object(&account->presence); G_OBJECT_CLASS(purple_account_parent_class)->dispose(object);
@@ -875,9 +870,9 @@
PurpleAccount *account = PURPLE_ACCOUNT(object);
PurpleConversationManager *manager = NULL;
- purple_debug_info("account", "Destroying account %p\n", account);
+ purple_debug_info("account", "Destroying account %p", account); purple_signal_emit(purple_accounts_get_handle(), "account-destroying",
manager = purple_conversation_manager_get_default();
l = purple_conversation_manager_get_all(manager);
@@ -895,11 +890,7 @@
g_clear_object(&account->proxy_info);
- if (account->current_error) {
- g_free(account->current_error->description);
- g_free(account->current_error);
+ g_clear_pointer(&account->current_error, purple_connection_error_info_free); g_clear_object(&account->error_notification);
--- a/libpurple/accounts.c Tue Sep 20 02:08:42 2022 -0500
+++ b/libpurple/accounts.c Tue Sep 20 02:09:28 2022 -0500
@@ -289,14 +289,12 @@
child = purple_xmlnode_get_child(node, "description");
description = purple_xmlnode_get_data(child);
- if (description == NULL)
- description = g_strdup("");
- current_error = g_new0(PurpleConnectionErrorInfo, 1);
- current_error->type = type;
- current_error->description = description;
+ current_error = purple_connection_error_info_new(type, + (description != NULL) ? description : ""); _purple_account_set_current_error(account, current_error);
@@ -664,11 +662,7 @@
g_return_if_fail(account != NULL);
- err = g_new0(PurpleConnectionErrorInfo, 1);
- err->description = g_strdup(description);
+ err = purple_connection_error_info_new(type, description); _purple_account_set_current_error(account, err);
purple_signal_emit(purple_accounts_get_handle(), "account-connection-error",
--- a/libpurple/connection.c Tue Sep 20 02:08:42 2022 -0500
+++ b/libpurple/connection.c Tue Sep 20 02:09:28 2022 -0500
@@ -700,9 +700,7 @@
purple_account_set_connection(account, NULL);
- purple_connection_error_info_free(gc->error_info);
+ g_clear_pointer(&gc->error_info, purple_connection_error_info_free); if(gc->disconnect_timeout > 0) {
g_source_remove(gc->disconnect_timeout);