Commit b6691821 authored by Marco Trevisan's avatar Marco Trevisan 🎺 Committed by Ernestas Kulik

file-view: prevent ref unreffed pending selection objects

Do the selection unref after that we've copied it, as the very same
objects might be in two different lists and thus being invalidated
after the first unref.

Fixes #295
parent 5f3f0af9
......@@ -3032,6 +3032,7 @@ nautilus_files_view_set_selection (NautilusView *nautilus_files_view,
{
NautilusFilesView *view;
NautilusFilesViewPrivate *priv;
GList *pending_selection;
view = NAUTILUS_FILES_VIEW (nautilus_files_view);
priv = nautilus_files_view_get_instance_private (view);
......@@ -3049,9 +3050,11 @@ nautilus_files_view_set_selection (NautilusView *nautilus_files_view,
/* If we are still loading, set the list of pending URIs instead.
* done_loading() will eventually select the pending URIs and reveal them.
*/
pending_selection = g_list_copy_deep (selection,
(GCopyFunc) g_object_ref, NULL);
g_list_free_full (priv->pending_selection, g_object_unref);
priv->pending_selection =
g_list_copy_deep (selection, (GCopyFunc) g_object_ref, NULL);
priv->pending_selection = pending_selection;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment