diff options
author | JP Rosevear <jpr@ximian.com> | 2004-02-26 21:48:44 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2004-02-26 21:48:44 +0800 |
commit | f7d587939d8df919d50fff368ebaffde4276ea25 (patch) | |
tree | 603a2bdd1d5198b2954a04f48eab3159ea9fb5cc | |
parent | e0163b782f3c12b72acbe5ade34e88a9a7504e7d (diff) | |
download | gsoc2013-evolution-f7d587939d8df919d50fff368ebaffde4276ea25.tar.gz gsoc2013-evolution-f7d587939d8df919d50fff368ebaffde4276ea25.tar.zst gsoc2013-evolution-f7d587939d8df919d50fff368ebaffde4276ea25.zip |
make sure we unref the task pad client and the calendar clients are
2004-02-26 JP Rosevear <jpr@ximian.com>
* gui/gnome-cal.c (client_cal_opened_cb): make sure we unref the
task pad client and the calendar clients are unreffed by the hash
table
svn path=/trunk/; revision=24880
-rw-r--r-- | calendar/ChangeLog | 6 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 21 |
2 files changed, 12 insertions, 15 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6fb8396b5a..a27e8d31e4 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,9 @@ +2004-02-26 JP Rosevear <jpr@ximian.com> + + * gui/gnome-cal.c (client_cal_opened_cb): make sure we unref the + task pad client and the calendar clients are unreffed by the hash + table + 2004-02-24 JP Rosevear <jpr@ximian.com> * gui/migration.c (migrate_calendars): fix float type pane diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 491756bf6b..0ac372548e 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -1782,21 +1782,13 @@ client_cal_opened_cb (ECal *ecal, ECalendarStatus status, GnomeCalendar *gcal) e_calendar_view_set_status_message (E_CALENDAR_VIEW (gnome_calendar_get_current_view_widget (gcal)), NULL); } } else { - if (ecal == priv->task_pad_client) + if (ecal == priv->task_pad_client) { + g_object_unref (priv->task_pad_client); priv->task_pad_client = NULL; - else { - gpointer orig_uid; - gpointer orig_client; - - if (g_hash_table_lookup_extended (priv->clients, e_cal_get_uri (ecal), &orig_uid, &orig_client)) { - g_hash_table_remove (priv->clients, e_cal_get_uri (ecal)); - g_free (orig_uid); - } - - priv->clients_list = g_list_append (priv->clients_list, ecal); + } else { + priv->clients_list = g_list_remove (priv->clients_list, ecal); + g_hash_table_remove (priv->clients, e_cal_get_uri (ecal)); } - - g_object_unref (ecal); } } @@ -1963,9 +1955,8 @@ backend_died_cb (ECal *client, gpointer data) calendar_component_peek_source_selector (calendar_component_peek ()), e_cal_get_source (client)); - g_hash_table_remove (priv->clients, e_cal_get_uri (client)); priv->clients_list = g_list_remove (priv->clients_list, client); - g_object_unref (client); + g_hash_table_remove (priv->clients, e_cal_get_uri (client)); } dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal))), |