[evolution] Fix several memory leaks in ECalModel and its descendants



commit 57b55a907a660ec37750fe7a10b07751ae3df965
Author: Milan Crha <mcrha redhat com>
Date:   Wed Sep 18 14:21:47 2019 +0200

    Fix several memory leaks in ECalModel and its descendants

 src/calendar/gui/e-cal-model-calendar.c | 3 +--
 src/calendar/gui/e-cal-model-tasks.c    | 7 ++++---
 src/calendar/gui/e-cal-model.c          | 4 +++-
 3 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/src/calendar/gui/e-cal-model-calendar.c b/src/calendar/gui/e-cal-model-calendar.c
index 7e162f77aa..e30791124e 100644
--- a/src/calendar/gui/e-cal-model-calendar.c
+++ b/src/calendar/gui/e-cal-model-calendar.c
@@ -365,8 +365,7 @@ cal_model_calendar_free_value (ETableModel *etm,
 
        switch (col) {
        case E_CAL_MODEL_CALENDAR_FIELD_DTEND :
-               if (value)
-                       g_free (value);
+               e_cell_date_edit_value_free (value);
                break;
        case E_CAL_MODEL_CALENDAR_FIELD_LOCATION :
        case E_CAL_MODEL_CALENDAR_FIELD_TRANSPARENCY :
diff --git a/src/calendar/gui/e-cal-model-tasks.c b/src/calendar/gui/e-cal-model-tasks.c
index c9ce4f30aa..81450cf6d6 100644
--- a/src/calendar/gui/e-cal-model-tasks.c
+++ b/src/calendar/gui/e-cal-model-tasks.c
@@ -206,8 +206,10 @@ get_priority (ECalModelComponent *comp_data)
        const gchar *value = NULL;
 
        prop = i_cal_component_get_first_property (comp_data->icalcomp, I_CAL_PRIORITY_PROPERTY);
-       if (prop)
+       if (prop) {
                value = e_cal_util_priority_to_string (i_cal_property_get_priority (prop));
+               g_clear_object (&prop);
+       }
 
        if (!value)
                value = "";
@@ -988,8 +990,7 @@ cal_model_tasks_free_value (ETableModel *etm,
        switch (col) {
        case E_CAL_MODEL_TASKS_FIELD_COMPLETED :
        case E_CAL_MODEL_TASKS_FIELD_DUE :
-               if (value)
-                       g_free (value);
+               e_cell_date_edit_value_free (value);
                break;
        case E_CAL_MODEL_TASKS_FIELD_GEO :
        case E_CAL_MODEL_TASKS_FIELD_PRIORITY :
diff --git a/src/calendar/gui/e-cal-model.c b/src/calendar/gui/e-cal-model.c
index 900dae8f84..a3e10069c7 100644
--- a/src/calendar/gui/e-cal-model.c
+++ b/src/calendar/gui/e-cal-model.c
@@ -1761,7 +1761,7 @@ cal_model_free_value (ETableModel *etm,
        case E_CAL_MODEL_FIELD_CREATED :
        case E_CAL_MODEL_FIELD_LASTMODIFIED :
                if (value)
-                       g_free (value);
+                       e_cell_date_edit_value_free (value);
                break;
        case E_CAL_MODEL_FIELD_COMPONENT :
                if (value)
@@ -4386,8 +4386,10 @@ e_cal_model_util_get_datetime_value (ECalModel *model,
                                }
 
                                if (start_zone) {
+                                       g_clear_object (&tt_start);
                                        tt_start = i_cal_time_new_from_timet_with_zone 
(comp_data->instance_start, is_date, start_zone);
                                } else {
+                                       g_clear_object (&tt_start);
                                        tt_start = i_cal_time_new_from_timet_with_zone 
(comp_data->instance_start, is_date, model->priv->zone);
                                }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]