aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog26
-rw-r--r--calendar/gui/dialogs/comp-editor-util.c2
-rw-r--r--calendar/gui/dialogs/event-editor.c2
-rw-r--r--calendar/gui/dialogs/meeting-page.c2
-rw-r--r--calendar/gui/e-calendar-table.c1
-rw-r--r--calendar/gui/e-day-view.c1
-rw-r--r--calendar/gui/e-meeting-model.c1
-rw-r--r--calendar/gui/e-week-view.c1
-rw-r--r--calendar/gui/itip-utils.c17
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;
}