aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-week-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-week-view.c')
-rw-r--r--calendar/gui/e-week-view.c39
1 files changed, 21 insertions, 18 deletions
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 7af4d8590c..8d1e8815de 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -566,7 +566,7 @@ e_week_view_add_new_event_in_selected_range (EWeekView *week_view,
{
ECalClient *client;
ECalModel *model;
- ECalComponent *comp;
+ ECalComponent *comp = NULL;
icalcomponent *icalcomp;
gint event_num;
ECalComponentDateTime date;
@@ -576,17 +576,19 @@ e_week_view_add_new_event_in_selected_range (EWeekView *week_view,
AddEventData add_event_data;
EWeekViewEvent *wvevent;
EWeekViewEventSpan *span;
+ gboolean success = FALSE;
- /* Check if the client is read only */
model = e_calendar_view_get_model (E_CALENDAR_VIEW (week_view));
- client = e_cal_model_get_default_client (model);
+ client = e_cal_model_ref_default_client (model);
+
+ /* Check if the client is read only */
if (e_client_is_readonly (E_CLIENT (client)))
- return FALSE;
+ goto exit;
/* Add a new event covering the selected range. */
icalcomp = e_cal_model_create_component_with_defaults (e_calendar_view_get_model (E_CALENDAR_VIEW (week_view)), TRUE);
if (!icalcomp)
- return FALSE;
+ goto exit;
uid = icalcomponent_get_uid (icalcomp);
comp = e_cal_component_new ();
@@ -625,18 +627,17 @@ e_week_view_add_new_event_in_selected_range (EWeekView *week_view,
if (!e_week_view_find_event_from_uid (week_view, client, uid, NULL, &event_num)) {
g_warning ("Couldn't find event to start editing.\n");
- g_object_unref (comp);
- return FALSE;
+ goto exit;
}
if (!is_array_index_in_bounds (week_view->events, event_num))
- return FALSE;
+ goto exit;
wvevent = &g_array_index (week_view->events, EWeekViewEvent,
event_num);
if (!is_array_index_in_bounds (week_view->spans, wvevent->spans_index + 0))
- return FALSE;
+ goto exit;
span = &g_array_index (week_view->spans, EWeekViewEventSpan,
wvevent->spans_index + 0);
@@ -645,17 +646,19 @@ e_week_view_add_new_event_in_selected_range (EWeekView *week_view,
if (!span->text_item) {
e_week_view_foreach_event_with_uid (week_view, uid,
e_week_view_remove_event_cb, NULL);
- g_object_unref (comp);
- return FALSE;
- } else {
- e_week_view_start_editing_event (
- week_view, event_num, 0,
- (gchar *) initial_text);
+ goto exit;
}
- g_object_unref (comp);
+ e_week_view_start_editing_event (
+ week_view, event_num, 0, (gchar *) initial_text);
- return TRUE;
+ success = TRUE;
+
+exit:
+ g_clear_object (&comp);
+ g_clear_object (&client);
+
+ return success;
}
static void
@@ -3017,7 +3020,7 @@ e_week_view_add_event (ECalComponent *comp,
} else {
event.comp_data = g_object_new (E_TYPE_CAL_MODEL_COMPONENT, NULL);
- event.comp_data->client = g_object_ref (e_cal_model_get_default_client (e_calendar_view_get_model (E_CALENDAR_VIEW (add_event_data->week_view))));
+ event.comp_data->client = e_cal_model_ref_default_client (e_calendar_view_get_model (E_CALENDAR_VIEW (add_event_data->week_view)));
e_cal_component_abort_sequence (comp);
event.comp_data->icalcomp = icalcomponent_new_clone (e_cal_component_get_icalcomponent (comp));
}