rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=ed142e578d7848e41882ed84efd0e6ad602c9464

commit ed142e578d7848e41882ed84efd0e6ad602c9464
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Mon Jan 25 18:44:54 2016 +0000

    property_group: fix SIGSEV on filters
    
    changing part filter before finding this part lead to update and then change
    item->title from choosen last part to None.
    Pretty unexpectable behaviour.
---
 src/bin/ui/property_group.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index dd6cd2d..a2d43e9 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -2287,8 +2287,6 @@ _on_program_filter_part_change(void *data,
    /* making change */
    Change *change = change_add(msg);
    eina_stringshare_del(msg);
-   editor_program_filter_part_set(pd->group->edit_object, change, false 
PROGRAM_ARGS,
-         isNone ? NULL : item->title);
 
    if (isNone)
      {
@@ -2302,6 +2300,10 @@ _on_program_filter_part_change(void *data,
         editor_program_filter_state_set(pd->group->edit_object, change, false 
PROGRAM_ARGS,
                                         state->parsed_name);
      }
+
+   editor_program_filter_part_set(pd->group->edit_object, change, false 
PROGRAM_ARGS,
+         isNone ? NULL : item->title);
+
    history_change_add(pd->group->history, change);
    evas_object_smart_callback_call(ap.win, SIGNAL_PROPERTY_ATTRIBUTE_CHANGED, 
NULL);
    prop_program_filter_state_update(pd);
@@ -2314,7 +2316,7 @@ _on_program_filter_state_change(void *data,
    Group_Prop_Data *pd = (Group_Prop_Data *)data;
    Ewe_Combobox_Item *item = ei;
    Eina_Bool isNone = false;
-   Eina_Stringshare *old_val = 
edje_edit_program_filter_part_get(pd->group->edit_object
+   Eina_Stringshare *old_val = 
edje_edit_program_filter_state_get(pd->group->edit_object
          PROGRAM_ARGS);
    if (((item->index != 0) && (item->title == old_val)) /*stringshares*/ ||
        ((item->index == 0) && (old_val == NULL)))
@@ -2323,6 +2325,7 @@ _on_program_filter_state_change(void *data,
        return;
      }
    eina_stringshare_del(old_val);
+
    isNone = !strcmp(item->title, _("None"));
    Eina_Stringshare *msg = eina_stringshare_printf(_("filter state changed to 
\"%s\""),
                                                    isNone ? NULL : 
item->title);

-- 


Reply via email to