diff options
author | Damon Chaplin <damon@helixcode.com> | 2000-05-06 18:43:14 +0800 |
---|---|---|
committer | Damon Chaplin <damon@src.gnome.org> | 2000-05-06 18:43:14 +0800 |
commit | 10ee8953e2d461f3164cbc32784af1ab887aa0c7 (patch) | |
tree | e4604f9a32f3e0b569e566216d4d2a969734a23d /calendar/gui/calendar-commands.c | |
parent | 154973985a05b17e29e1588adccaee0c17dd11d5 (diff) | |
download | gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar.gz gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar.bz2 gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar.lz gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar.xz gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.tar.zst gsoc2013-evolution-10ee8953e2d461f3164cbc32784af1ab887aa0c7.zip |
added guint ref_count to iCalObject struct, and ical_object_ref/unref()
2000-05-06 Damon Chaplin <damon@helixcode.com>
* cal-util/calobj.[hc]: added guint ref_count to iCalObject struct,
and ical_object_ref/unref() functions. I've updated all the gui/
stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe
just using ical_object_destroy() is OK there.
* gui/gncal-todo.c:
* gui/calendar-commands.c:
* gui/eventedit.c:
* gui/e-week-view.c:
* gui/e-day-view.c: use refcounting for iCalObjects.
* gui/e-day-view-main-item.c:
* gui/e-day-view-top-item.c:
* gui/e-day-view.c: try not to ever draw outside the event, even when
the event is very small.
2000-05-05 Damon Chaplin <damon@helixcode.com>
* gui/e-day-view.c: don't allow recurring events to be resized or
dragged, and don't show the resize/drag cursors. Actually it may be
better to let the user do the resize/drag and then ask them what they
want to do - change the single occurrence or the entire series.
* gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu):
use e_auto_kill_popup_menu_on_hide() to destroy the popup menu.
* gui/popup-menu.c: include e-gui-utils.h
svn path=/trunk/; revision=2823
Diffstat (limited to 'calendar/gui/calendar-commands.c')
-rw-r--r-- | calendar/gui/calendar-commands.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c index 87d63140dd..22b716b97d 100644 --- a/calendar/gui/calendar-commands.c +++ b/calendar/gui/calendar-commands.c @@ -96,6 +96,10 @@ CalendarAlarm alarm_defaults[4] = { }; +static void calendar_iterate_free_cache_entry (gpointer key, + gpointer value, + gpointer user_data); + static void init_username (void) { @@ -863,12 +867,22 @@ calendar_iterate (GnomeCalendar *cal, g_list_free (cois); - /* Note that we don't need to free the hash keys since they are part - of the iCalObjects. */ + /* We need to unref all the iCalObjects in the cache now. The callback + function should have ref'd any of them it wants to keep. */ + g_hash_table_foreach (cache, calendar_iterate_free_cache_entry, NULL); + g_hash_table_destroy (cache); } +static void +calendar_iterate_free_cache_entry (gpointer key, + gpointer value, + gpointer user_data) +{ + ical_object_unref ((iCalObject*) value); +} + static gint calendar_object_compare_by_start (gconstpointer a, gconstpointer b) |