From 4e47d1142a431f2c64437a7e47fc892a43c17d16 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Fri, 8 Dec 2000 21:09:04 +0000 Subject: Free the strings we get from the editables. 2000-12-08 Federico Mena Quintero * gui/event-editor.c (dialog_to_comp_object): Free the strings we get from the editables. * gui/dialogs/task-editor.c (dialog_to_comp_object): Likewise. This sucks; this code should be shared between the two dialogs. svn path=/trunk/; revision=6868 --- calendar/ChangeLog | 8 ++++++ calendar/gui/dialogs/task-editor.c | 54 +++++++++++++++++++++++++++----------- calendar/gui/event-editor.c | 11 +++++--- 3 files changed, 55 insertions(+), 18 deletions(-) (limited to 'calendar') diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 4b15fd8c73..a2a7cf282e 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,11 @@ +2000-12-08 Federico Mena Quintero + + * gui/event-editor.c (dialog_to_comp_object): Free the strings we + get from the editables. + + * gui/dialogs/task-editor.c (dialog_to_comp_object): Likewise. + This sucks; this code should be shared between the two dialogs. + 2000-12-08 Federico Mena Quintero * gui/event-editor.c (fill_widgets): Free the dates we get from diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index 61767b4fd1..8cd7c33ba9 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -845,33 +845,57 @@ dialog_to_comp_object (TaskEditor *tedit) { TaskEditorPrivate *priv; CalComponent *comp; - CalComponentText *text; CalComponentDateTime date; time_t t; - GSList *list; icalproperty_status status; TaskEditorPriority priority; int priority_value, percent; CalComponentClassification classification; char *url; const char *status_string; + char *str; priv = tedit->priv; comp = priv->comp; /* Summary. */ - text = g_new0 (CalComponentText, 1); - text->value = e_dialog_editable_get (priv->summary); - cal_component_set_summary (comp, text); - - /* Description. Note that we use the text variable again, and it is - freed in cal_component_free_text_list(). */ - list = NULL; - text->value = e_dialog_editable_get (priv->description); - list = g_slist_prepend (list, text); - cal_component_set_description_list (comp, list); - cal_component_free_text_list (list); + + str = e_dialog_editable_get (priv->summary); + if (!str || strlen (str) == 0) + cal_component_set_summary (comp, NULL); + else { + CalComponentText text; + + text.value = str; + text.altrep = NULL; + + cal_component_set_summary (comp, &text); + } + + if (str) + g_free (str); + + /* Description */ + + str = e_dialog_editable_get (priv->description); + if (!str || strlen (str) == 0) + cal_component_set_description_list (comp, NULL); + else { + GSList l; + CalComponentText text; + + text.value = str; + text.altrep = NULL; + l.data = &text; + l.next = NULL; + + cal_component_set_description_list (comp, &l); + } + if (!str) + g_free (str); + + /* Dates */ date.value = g_new (struct icaltimetype, 1); date.tzid = NULL; @@ -929,8 +953,8 @@ dialog_to_comp_object (TaskEditor *tedit) url = e_dialog_editable_get (priv->url); cal_component_set_url (comp, url); - - + if (url) + g_free (url); cal_component_commit_sequence (comp); } diff --git a/calendar/gui/event-editor.c b/calendar/gui/event-editor.c index 0d98d75d24..8939e9bb64 100644 --- a/calendar/gui/event-editor.c +++ b/calendar/gui/event-editor.c @@ -2150,7 +2150,7 @@ dialog_to_comp_object (EventEditor *ee, CalComponent *comp) /* Summary */ str = e_dialog_editable_get (priv->general_summary); - if (strlen (str) == 0) + if (!str || strlen (str) == 0) cal_component_set_summary (comp, NULL); else { CalComponentText text; @@ -2161,10 +2161,13 @@ dialog_to_comp_object (EventEditor *ee, CalComponent *comp) cal_component_set_summary (comp, &text); } + if (str) + g_free (str); + /* Description */ str = e_dialog_editable_get (priv->description); - if (strlen (str) == 0) + if (!str || strlen (str) == 0) cal_component_set_description_list (comp, NULL); else { GSList l; @@ -2177,7 +2180,9 @@ dialog_to_comp_object (EventEditor *ee, CalComponent *comp) cal_component_set_description_list (comp, &l); } - /* FIXME: Do we need to free str?? */ + + if (!str) + g_free (str); /* Dates */ -- cgit v1.2.3