utils: Fix double free in gcal_create_writable_calendars_model
gtk_filter_list_model_new expected that the model passed to be an owned reference, but we were passing an unowned one, causing a double free after the function is called repeatedly. This was particularly noticeable in the importer dialog. Fixes #1282
This commit is contained in:
committed by
Georges Basile Stavracas Neto
parent
2df48b6fc2
commit
9443520411
@@ -1371,6 +1371,7 @@ gcal_create_writable_calendars_model (GcalManager *manager)
|
|||||||
{
|
{
|
||||||
GtkBoolFilter *bool_filter;
|
GtkBoolFilter *bool_filter;
|
||||||
GtkExpression *expression;
|
GtkExpression *expression;
|
||||||
|
GListModel *calendars;
|
||||||
|
|
||||||
g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
|
g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
|
||||||
|
|
||||||
@@ -1379,6 +1380,7 @@ gcal_create_writable_calendars_model (GcalManager *manager)
|
|||||||
bool_filter = gtk_bool_filter_new (expression);
|
bool_filter = gtk_bool_filter_new (expression);
|
||||||
gtk_bool_filter_set_invert (bool_filter, TRUE);
|
gtk_bool_filter_set_invert (bool_filter, TRUE);
|
||||||
|
|
||||||
return G_LIST_MODEL (gtk_filter_list_model_new (G_LIST_MODEL (gcal_manager_get_calendars_model (manager)),
|
calendars = gcal_manager_get_calendars_model (manager);
|
||||||
GTK_FILTER (bool_filter)));
|
return G_LIST_MODEL (gtk_filter_list_model_new (g_object_ref (calendars), GTK_FILTER (bool_filter)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user