aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-cal-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-cal-model.c')
-rw-r--r--calendar/gui/e-cal-model.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 62c9188077..0aff1ce929 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -545,9 +545,9 @@ cal_model_get_property (GObject *object,
return;
case PROP_DEFAULT_CLIENT:
- g_value_set_object (
+ g_value_take_object (
value,
- e_cal_model_get_default_client (
+ e_cal_model_ref_default_client (
E_CAL_MODEL (object)));
return;
@@ -1736,18 +1736,20 @@ e_cal_model_test_row_editable (ECalModel *model,
comp_data = e_cal_model_get_component_at (model, row);
- if (comp_data)
- client = comp_data->client;
+ if (comp_data != NULL && comp_data->client != NULL)
+ client = g_object_ref (comp_data->client);
} else {
- client = e_cal_model_get_default_client (model);
+ client = e_cal_model_ref_default_client (model);
}
- readonly = client == NULL;
+ readonly = (client == NULL);
if (!readonly)
readonly = e_client_is_readonly (E_CLIENT (client));
+ g_clear_object (&client);
+
return !readonly;
}
@@ -1797,11 +1799,9 @@ ecm_append_row (ETableModel *etm,
comp_data = g_object_new (E_TYPE_CAL_MODEL_COMPONENT, NULL);
- comp_data->client = e_cal_model_get_default_client (model);
- if (comp_data->client)
- g_object_ref (comp_data->client);
+ comp_data->client = e_cal_model_ref_default_client (model);
- if (!comp_data->client) {
+ if (comp_data->client == NULL) {
g_object_unref (comp_data);
return;
}
@@ -2559,7 +2559,7 @@ e_cal_model_set_work_day_start_minute (ECalModel *model,
}
ECalClient *
-e_cal_model_get_default_client (ECalModel *model)
+e_cal_model_ref_default_client (ECalModel *model)
{
ClientData *client_data;
ECalClient *default_client = NULL;
@@ -2568,11 +2568,11 @@ e_cal_model_get_default_client (ECalModel *model)
g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
if (model->priv->default_client != NULL)
- return model->priv->default_client;
+ return g_object_ref (model->priv->default_client);
client_data = cal_model_clients_peek (model);
if (client_data != NULL) {
- default_client = client_data->client;
+ default_client = g_object_ref (client_data->client);
client_data_unref (client_data);
}
@@ -3788,8 +3788,8 @@ e_cal_model_create_component_with_defaults (ECalModel *model,
priv = model->priv;
- client = e_cal_model_get_default_client (model);
- if (!client)
+ client = e_cal_model_ref_default_client (model);
+ if (client == NULL)
return icalcomponent_new (priv->kind);
switch (priv->kind) {
@@ -3810,6 +3810,8 @@ e_cal_model_create_component_with_defaults (ECalModel *model,
return NULL;
}
+ g_object_unref (client);
+
if (!comp)
return icalcomponent_new (priv->kind);