aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@helixcode.com>2000-12-09 05:09:04 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2000-12-09 05:09:04 +0800
commit4e47d1142a431f2c64437a7e47fc892a43c17d16 (patch)
tree0b83423b2a97d03a35aee348bce1374c7c01dcce /calendar/gui
parent3df2257e016793b56ab81107ef61beecf2ced330 (diff)
downloadgsoc2013-evolution-4e47d1142a431f2c64437a7e47fc892a43c17d16.tar.gz
gsoc2013-evolution-4e47d1142a431f2c64437a7e47fc892a43c17d16.tar.zst
gsoc2013-evolution-4e47d1142a431f2c64437a7e47fc892a43c17d16.zip
Free the strings we get from the editables.
2000-12-08 Federico Mena Quintero <federico@helixcode.com> * 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
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/dialogs/task-editor.c54
-rw-r--r--calendar/gui/event-editor.c11
2 files changed, 47 insertions, 18 deletions
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 */