summarylogtreecommitdiffstats
path: root/fix-assertion-failed-crash.patch
blob: c9162f7f629f3e845d167aedb47620d7272049c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From 25d823099337f7ede4782f46fea46f251646dc3e Mon Sep 17 00:00:00 2001
From: Edward Sheldrake <ejsheldrake@gmail.com>
Date: Wed, 11 Apr 2012 07:27:16 +0000
Subject: Fix assertion failed crash

Fix "assertion failed: (last_slash != NULL)" crash while navigating the
left tree view, fixed by having the model for the right list view emit
all the row deleted signals before deleting any of its data.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=670586
---
diff --git a/src/gconf-list-model.c b/src/gconf-list-model.c
index 27e1af6..4fc60f8 100644
--- a/src/gconf-list-model.c
+++ b/src/gconf-list-model.c
@@ -133,11 +133,14 @@ gconf_list_model_set_root_path (GConfListModel *model, const gchar *root_path)
 
 	if (model->root_path != NULL) {
 		for (list = model->values; list; list = list->next) {
+			model->stamp++;
+			gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
+		}
+
+		for (list = model->values; list; list = list->next) {
 			GConfEntry *entry = list->data;
 
 			g_hash_table_remove (model->key_hash, gconf_entry_get_key (entry));
-			model->stamp++;
-			gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
 
 			gconf_entry_unref (entry);
 		}
--
cgit v0.9.0.2