aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/alarm-notify/alarm.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/calendar/gui/alarm-notify/alarm.c b/calendar/gui/alarm-notify/alarm.c
index 7f45a72712..8ee5146230 100644
--- a/calendar/gui/alarm-notify/alarm.c
+++ b/calendar/gui/alarm-notify/alarm.c
@@ -57,8 +57,7 @@ pop_alarm (void)
AlarmRecord *ar;
GList *l;
- if (!alarms)
- return;
+ g_assert (alarms != NULL);
ar = alarms->data;
@@ -102,8 +101,15 @@ alarm_ready_cb (gpointer data)
(* ar->destroy_notify_fn) (notify_id, ar->data);
}
- if (alarms)
- setup_timeout (now);
+ if (alarms) {
+ /* We need this check because one of the alarm_fn above may have
+ * re-entered and added an alarm of its own, so the timer will
+ * already be set up.
+ */
+ if (timeout_id != 0)
+ setup_timeout (now);
+ } else
+ g_assert (timeout_id == 0);
return FALSE;
}