Blob Blame History Raw
From f82dcfe99dafc9b6eac331bcf22662c9254f8a40 Mon Sep 17 00:00:00 2001
From: Edward Sheldrake <ejsheldrake@gmail.com>
Date: Wed, 11 Apr 2012 08:27:16 +0100
Subject: [PATCH] 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
---
 src/gconf-list-model.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

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);
 		}
-- 
1.7.9.6