[evolution/gnome-3-4] Bug #675728 - Crash in strcmp, e_filter_rule_find_list
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/gnome-3-4] Bug #675728 - Crash in strcmp, e_filter_rule_find_list
- Date: Thu, 10 May 2012 18:13:05 +0000 (UTC)
commit 30aa006730ffeb5f9d1e0dd2308b38f7645fd8fa
Author: Milan Crha <mcrha redhat com>
Date: Thu May 10 20:12:38 2012 +0200
Bug #675728 - Crash in strcmp, e_filter_rule_find_list
filter/e-rule-editor.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/filter/e-rule-editor.c b/filter/e-rule-editor.c
index 4d6bd3e..58ffdc1 100644
--- a/filter/e-rule-editor.c
+++ b/filter/e-rule-editor.c
@@ -208,7 +208,7 @@ update_selected_rule (ERuleEditor *editor)
GtkTreeIter iter;
selection = gtk_tree_view_get_selection (editor->list);
- if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+ if (selection && gtk_tree_selection_get_selected (selection, &model, &iter)) {
gtk_tree_model_get (GTK_TREE_MODEL (editor->model), &iter, 1, &editor->current, -1);
return TRUE;
}
@@ -400,7 +400,11 @@ rule_delete (GtkWidget *widget,
pos = e_rule_context_get_rank_rule (editor->context, editor->current, editor->source);
if (pos != -1) {
- e_rule_context_remove_rule (editor->context, editor->current);
+ EFilterRule *delete_rule = editor->current;
+
+ editor->current = NULL;
+
+ e_rule_context_remove_rule (editor->context, delete_rule);
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, pos);
@@ -408,12 +412,11 @@ rule_delete (GtkWidget *widget,
gtk_list_store_remove (editor->model, &iter);
gtk_tree_path_free (path);
- rule_editor_add_undo (editor, E_RULE_EDITOR_LOG_REMOVE, editor->current,
- e_rule_context_get_rank_rule (editor->context, editor->current, editor->current->source), 0);
+ rule_editor_add_undo (editor, E_RULE_EDITOR_LOG_REMOVE, delete_rule,
+ e_rule_context_get_rank_rule (editor->context, delete_rule, delete_rule->source), 0);
#if 0
- g_object_unref (editor->current);
+ g_object_unref (delete_rule);
#endif
- editor->current = NULL;
/* now select the next rule */
len = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (editor->model), NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]