[nautilus: 1/2] file-view: prevent ref unreffed pending selection objects
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus: 1/2] file-view: prevent ref unreffed pending selection objects
- Date: Wed, 14 Mar 2018 17:47:02 +0000 (UTC)
commit 115acfb9d3d188fea8a8a2c333c87773020ba375
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Tue Mar 13 18:57:18 2018 +0100
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
src/nautilus-files-view.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 55d0aeb4e..e2e3ddd44 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -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;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]