The final call to g_list_free_full (list, g_free) causes the problem. Just for more informations sake, using g_object_unref instead of gfree avoids the crash, as does not calling g_list_free_full at all and so not double freeing. But someone with actual gobject memory management knowledge will need to look for the real problem, personally I thought g_free was supposed to handle this safely.
double free occurs in tree-sidebar. c: 1015
src/nautilus-
static void view_trash_ cb (GtkWidget *menu_item,
FMTreeView *view)
fm_tree_
{
GList *list;
if (!nautilus_ file_can_ trash (view-> details- >popup_ file)) {
return;
}
list = g_list_prepend (NULL,
nautilus_ file_get_ location (view-> details- >popup_ file));
nautilus_ file_operations _trash_ or_delete (list,
fm_tree_ view_get_ containing_ window (view),
NULL, NULL);
g_list_free_full (list, g_free);
}
The final call to g_list_free_full (list, g_free) causes the problem. Just for more informations sake, using g_object_unref instead of gfree avoids the crash, as does not calling g_list_free_full at all and so not double freeing. But someone with actual gobject memory management knowledge will need to look for the real problem, personally I thought g_free was supposed to handle this safely.