summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-extra/gconf-editor/files/gconf-editor-3.0.1-assertion-crash.patch')
-rw-r--r--gnome-extra/gconf-editor/files/gconf-editor-3.0.1-assertion-crash.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnome-extra/gconf-editor/files/gconf-editor-3.0.1-assertion-crash.patch b/gnome-extra/gconf-editor/files/gconf-editor-3.0.1-assertion-crash.patch
new file mode 100644
index 000000000000..b7df8f51007d
--- /dev/null
+++ b/gnome-extra/gconf-editor/files/gconf-editor-3.0.1-assertion-crash.patch
@@ -0,0 +1,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.2