pidgin/pidgin

ce790d508898
Parents 61b1b01b8de4
Children 785c4056ce54
Minor cleanup to account cleanup and connection error handling

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/1812/
--- 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();
- if(old_err)
- g_free(old_err->description);
-
- g_free(old_err);
+ 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",
- account);
+ account);
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);
g_free(account->id);
--- 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");
- if (child)
+ if(child) {
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 : "");
+ g_free(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->type = type;
- 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);
- if(gc->error_info) {
- 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);