GNOME Bugzilla – Bug 457394
Tasks crashed because wrong reference counting
Last modified: 2013-09-13 00:59:06 UTC
There was wrong reference counting on 'ECalModelClient::client' when showing tasks in calendar/gui/e-calendar-table.c: missing g_object_ref at show_completed_rows, and missing g_object_unref at hide_completed_rows. It may be related with couple of crashes in tasks because of periodical calling of e_calendar_table_process_completed_tasks. I found it when changing "Hide completed tasks" from checked to unchecked after restart evolution and checking tasks as completed (filter isn't changed, so those tasks are hidden, unreferencing 'client', and because there was no referencing, then it crashes. Maybe this is also related to some crashes on exit.
Created attachment 91861 [details] [review] proposed patch for evolution;
This fix is very reasonable to me. Can somebody review the patch?
Looks right to me. e_cal_model_free_component_data() unrefs the ECal "client" object, so you're correct to increment its refererence count when creating a new ECalModelComponent.
Committed to trunk. Committed revision 33858.