diff options
-rw-r--r-- | calendar/ChangeLog | 8 | ||||
-rw-r--r-- | calendar/conduits/calendar/calendar-conduit.c | 2 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-queue.c | 11 |
3 files changed, 17 insertions, 4 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index be12dadc1f..7b94fe8694 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,11 @@ +2008-02-08 Milan Crha <mcrha@redhat.com> + + ** Part of fixes for bug #395939 + + * gui/alarm-notify/alarm-queue.c: (update_cqa): + * conduits/calendar/calendar-conduit.c: (local_record_from_comp): + Free alarm properly. + 2008-01-28 Milan Crha <mcrha@redhat.com> ** Fix for bug #240073 diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c index 2654477e0f..9cc9227289 100644 --- a/calendar/conduits/calendar/calendar-conduit.c +++ b/calendar/conduits/calendar/calendar-conduit.c @@ -1104,6 +1104,7 @@ local_record_from_comp (ECalLocalRecord *local, ECalComponent *comp, ECalConduit for (l = uids; l != NULL; l = l->next) { alarm = e_cal_component_get_alarm (comp, l->data); e_cal_component_alarm_get_trigger (alarm, &trigger); + e_cal_component_alarm_free (alarm); if ((trigger.type == E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START && trigger.u.rel_duration.is_neg)) { @@ -1136,7 +1137,6 @@ local_record_from_comp (ECalLocalRecord *local, ECalComponent *comp, ECalConduit local->appt->alarm = 1; break; } - e_cal_component_alarm_free (alarm); } cal_obj_uid_list_free (uids); } diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/gui/alarm-notify/alarm-queue.c index e77377bdd8..b10b6f55bf 100644 --- a/calendar/gui/alarm-notify/alarm-queue.c +++ b/calendar/gui/alarm-notify/alarm-queue.c @@ -2179,11 +2179,16 @@ update_cqa (CompQueuedAlarms *cqa, ECalComponent *newcomp) for (qa_list = cqa->queued_alarms; qa_list; qa_list = qa_list->next) { QueuedAlarm *qa = qa_list->data; char *check_auid = (char *) qa->instance->auid; + ECalComponentAlarm *alarm; - if (e_cal_component_get_alarm (newcomp, check_auid)) + alarm = e_cal_component_get_alarm (newcomp, check_auid); + if (alarm) { + e_cal_component_alarm_free (alarm); continue; - else { - if (e_cal_component_get_alarm (oldcomp, check_auid)) { /* Need to update QueuedAlarms */ + } else { + alarm = e_cal_component_get_alarm (oldcomp, check_auid); + if (alarm) { /* Need to update QueuedAlarms */ + e_cal_component_alarm_free (alarm); if (alarms == NULL) { d(printf("%s:%d (update_cqa) - No alarms found in the modified component\n",__FILE__, __LINE__)); break; |