diff options
-rw-r--r-- | calendar/ChangeLog | 26 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor-util.c | 2 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-editor.c | 2 | ||||
-rw-r--r-- | calendar/gui/dialogs/meeting-page.c | 2 | ||||
-rw-r--r-- | calendar/gui/e-calendar-table.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-day-view.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-meeting-model.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-week-view.c | 1 | ||||
-rw-r--r-- | calendar/gui/itip-utils.c | 17 |
9 files changed, 46 insertions, 7 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 74009d71c8..a4ea3a02ad 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,31 @@ 2003-03-17 Hans Petter Jansson <hpj@ximian.com> + Fixes #34095 + + * gui/e-meeting-model.c (append_row): Don't leak meeting attendees; + unref the attendee after it's assigned to model. + + * gui/dialogs/meeting-page.c (meeting_page_destroy): Free the actual + array of deleted attendees. + + * gui/dialogs/event-editor.c (event_editor_destroy): Free the private + structure. + + * gui/itip-utils.c (comp_description): Rework free/busy information + composer so we can free date/time information after use. Then free it. + (itip_send_comp): Free the allocated CORBA buffer for attachment data. + + * gui/dialogs/comp-editor-util.c (comp_editor_contacts_to_component): + Free the destination contacts string once we're done with it. + + * gui/e-calendar-table.c (invisible_destroyed): Unref the invisible. + + * gui/e-day-view.c (invisible_destroyed): Ditto. + + * gui/e-week-view.c (invisible_destroyed): Ditto. + +2003-03-17 Hans Petter Jansson <hpj@ximian.com> + Fixes #39757 * gui/dialogs/alarm-page.c (sensitize_buttons): Somehow this code diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c index fdb8e04b78..2df5f94fa7 100644 --- a/calendar/gui/dialogs/comp-editor-util.c +++ b/calendar/gui/dialogs/comp-editor-util.c @@ -480,6 +480,8 @@ comp_editor_contacts_to_component (GtkWidget *contacts_entry, #endif contact_destv = e_destination_importv (contacts_string); + g_free (contacts_string); + if (contact_destv) { for (i = 0; contact_destv[i] != NULL; i++) { name = e_destination_get_name (contact_destv[i]); diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index 4253ba8889..9004d96e89 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -397,6 +397,8 @@ event_editor_finalize (GObject *object) g_object_unref((priv->model)); + g_free (priv); + if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } diff --git a/calendar/gui/dialogs/meeting-page.c b/calendar/gui/dialogs/meeting-page.c index 8687adb300..483d77b790 100644 --- a/calendar/gui/dialogs/meeting-page.c +++ b/calendar/gui/dialogs/meeting-page.c @@ -230,7 +230,7 @@ meeting_page_finalize (GObject *object) g_object_unref((priv->comp)); cleanup_attendees (priv->deleted_attendees); - g_ptr_array_free (priv->deleted_attendees, FALSE); + g_ptr_array_free (priv->deleted_attendees, TRUE); g_object_unref((priv->model)); diff --git a/calendar/gui/e-calendar-table.c b/calendar/gui/e-calendar-table.c index 3ce9cee4bd..0cf38eedd1 100644 --- a/calendar/gui/e-calendar-table.c +++ b/calendar/gui/e-calendar-table.c @@ -1176,6 +1176,7 @@ e_calendar_table_save_state (ECalendarTable *cal_table, static void invisible_destroyed (GtkWidget *invisible, ECalendarTable *cal_table) { + g_object_unref (cal_table->invisible); cal_table->invisible = NULL; } diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 45e052637e..106cd4de87 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -7570,6 +7570,7 @@ e_day_view_get_time_string_width (EDayView *day_view) static void invisible_destroyed (GtkWidget *invisible, EDayView *day_view) { + g_object_unref (day_view->invisible); day_view->invisible = NULL; } diff --git a/calendar/gui/e-meeting-model.c b/calendar/gui/e-meeting-model.c index 7122792ec4..3e36ec613d 100644 --- a/calendar/gui/e-meeting-model.c +++ b/calendar/gui/e-meeting-model.c @@ -383,6 +383,7 @@ append_row (ETableModel *etm, ETableModel *source, int row) e_meeting_attendee_set_language (ia, g_strdup (e_table_model_value_at (source, E_MEETING_MODEL_LANGUAGE_COL, row))); e_meeting_model_add_attendee (E_MEETING_MODEL (etm), ia); + g_object_unref (ia); } static void * diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index 4a1c44230c..07429cf771 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -4176,6 +4176,7 @@ e_week_view_get_time_string_width (EWeekView *week_view) static void invisible_destroyed (GtkWidget *invisible, EWeekView *week_view) { + gtk_object_unref (GTK_OBJECT (week_view->invisible)); week_view->invisible = NULL; } diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c index 51bdd73982..0b1aca392e 100644 --- a/calendar/gui/itip-utils.c +++ b/calendar/gui/itip-utils.c @@ -489,12 +489,15 @@ comp_description (CalComponent *comp) return CORBA_string_dup (_("Journal information")); case CAL_COMPONENT_FREEBUSY: cal_component_get_dtstart (comp, &dt); - if (dt.value) { + if (dt.value) start = get_label (dt.value); - cal_component_get_dtend (comp, &dt); - if (dt.value) - end = get_label (dt.value); - } + cal_component_free_datetime (&dt); + + cal_component_get_dtend (comp, &dt); + if (dt.value) + end = get_label (dt.value); + cal_component_free_datetime (&dt); + if (start != NULL && end != NULL) { char *tmp, *tmp_utf; tmp = g_strdup_printf (_("Free/Busy information (%s to %s)"), start, end); @@ -958,8 +961,10 @@ itip_send_comp (CalComponentItipMethod method, CalComponent *send_comp, CORBA_free (filename); if (description != NULL) CORBA_free (description); - if (attach_data != NULL) + if (attach_data != NULL) { + CORBA_free (attach_data->_buffer); CORBA_free (attach_data); + } return retval; } |