[empathy/mc5: 190/483] Move some code off dispose
- From: Sjoerd Simons <sjoerds src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy/mc5: 190/483] Move some code off dispose
- Date: Fri, 21 Aug 2009 17:15:23 +0000 (UTC)
commit 43208e2ee8fe2371d0562f37d817173857a91268
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Thu Jul 23 16:21:12 2009 +0200
Move some code off dispose
src/empathy-accounts-dialog.c | 49 ++++++++++++++++++++++++++---------------
1 files changed, 31 insertions(+), 18 deletions(-)
---
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index bad15b9..f2b4336 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -1165,7 +1165,29 @@ accounts_dialog_response_cb (GtkWidget *widget,
gint response,
EmpathyAccountsDialog *dialog)
{
+ GList *accounts, *l;
+ EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
+
if (response == GTK_RESPONSE_CLOSE) {
+ /* Delete incomplete accounts */
+ accounts = empathy_account_manager_dup_accounts
+ (priv->account_manager);
+ for (l = accounts; l; l = l->next) {
+ EmpathyAccount *account;
+
+ account = l->data;
+ if (!empathy_account_is_valid (account)) {
+ /* FIXME: Warn the user the account is not
+ * complete and is going to be removed.
+ */
+ empathy_account_manager_remove
+ (priv->account_manager, account);
+ }
+
+ g_object_unref (account);
+ }
+ g_list_free (accounts);
+
gtk_widget_destroy (widget);
}
}
@@ -1250,7 +1272,6 @@ do_dispose (GObject *obj)
{
EmpathyAccountsDialog *dialog = EMPATHY_ACCOUNTS_DIALOG (obj);
EmpathyAccountsDialogPriv *priv = GET_PRIV (dialog);
- GList *accounts, *l;
/* Disconnect signals */
g_signal_handlers_disconnect_by_func (priv->account_manager,
@@ -1272,27 +1293,19 @@ do_dispose (GObject *obj)
accounts_dialog_connection_changed_cb,
dialog);
- /* Delete incomplete accounts */
- accounts = empathy_account_manager_dup_accounts (priv->account_manager);
- for (l = accounts; l; l = l->next) {
- EmpathyAccount *account;
-
- account = l->data;
- if (!empathy_account_is_valid (account)) {
- /* FIXME: Warn the user the account is not complete
- * and is going to be removed. */
- empathy_account_manager_remove (priv->account_manager, account);
- }
-
- g_object_unref (account);
- }
- g_list_free (accounts);
-
if (priv->connecting_id) {
g_source_remove (priv->connecting_id);
}
- g_object_unref (priv->account_manager);
+ if (priv->account_manager != NULL) {
+ g_object_unref (priv->account_manager);
+ priv->account_manager = NULL;
+ }
+
+ if (priv->cms != NULL) {
+ g_object_unref (priv->cms);
+ priv->cms = NULL;
+ }
}
static GObject *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]