hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=d271175953c132f5cbe92b62d92d8a14a33cd90d

commit d271175953c132f5cbe92b62d92d8a14a33cd90d
Author: Hermet Park <her...@hermet.pe.kr>
Date:   Tue Apr 26 20:39:44 2016 +0900

    fix unexpected close on edc navigator.
    
    if edj view failed to load a edj, edje_edit apis will occur crashes.
    we could avoid this crash in enventor side.
    
    @fix T3510
---
 src/bin/main.c       |  1 -
 src/lib/edj_viewer.c | 14 ++++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index a0004c5..1e57ca1 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -506,7 +506,6 @@ enventor_live_view_updated_cb(void *data, Evas_Object *obj,
         ad->lazy_save = EINA_FALSE;
         ad->on_saving = EINA_FALSE;
      }
-printf("%s\n", __func__);
    base_edc_navigator_group_update();
 }
 
diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index f474927..0e24117 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -377,6 +377,7 @@ update_edj_file_internal(view_data *vd)
 
    view_obj_parts_callbacks_set(vd);
    vd->edj_reload_need = EINA_FALSE;
+   vd->file_set_finished = EINA_TRUE;
 
    evas_object_smart_callback_call(vd->enventor, SIG_LIVE_VIEW_UPDATED,
                                    edj_mgr_obj_get());
@@ -420,6 +421,7 @@ exe_del_event_cb(void *data, int type EINA_UNUSED, void 
*event EINA_UNUSED)
      {
         dummy_obj_update(vd->layout);
         ecore_timer_del(vd->update_edj_timer);
+        vd->file_set_finished = EINA_FALSE;
         vd->update_edj_timer = ecore_timer_add(0.25, update_edj_file, vd);
         return ECORE_CALLBACK_PASS_ON;
      }
@@ -824,42 +826,42 @@ view_size_get(view_data *vd, Evas_Coord *w, Evas_Coord *h)
 Eina_List *
 view_parts_list_get(view_data *vd)
 {
-   if (!vd->file_set_finished) return NULL;
+   if (!vd || !vd->file_set_finished) return NULL;
    return edje_edit_parts_list_get(vd->layout);
 }
 
 Eina_List *
 view_images_list_get(view_data *vd)
 {
-   if (!vd->file_set_finished) return NULL;
+   if (!vd || !vd->file_set_finished) return NULL;
    return edje_edit_images_list_get(vd->layout);
 }
 
 Eina_List *
 view_programs_list_get(view_data *vd)
 {
-   if (!vd->file_set_finished) return NULL;
+   if (!vd || !vd->file_set_finished) return NULL;
    return edje_edit_programs_list_get(vd->layout);
 }
 
 Edje_Part_Type
 view_part_type_get(view_data *vd, const char *part)
 {
-   if (!vd->file_set_finished) return EDJE_PART_TYPE_NONE;
+   if (!vd || !vd->file_set_finished) return EDJE_PART_TYPE_NONE;
    return edje_edit_part_type_get(vd->layout, part);
 }
 
 Eina_List *
 view_part_states_list_get(view_data *vd, const char *part)
 {
-   if (!vd->file_set_finished) return NULL;
+   if (!vd || !vd->file_set_finished) return NULL;
    return edje_edit_part_states_list_get(vd->layout, part);
 }
 
 Eina_List *
 view_program_targets_get(view_data *vd, const char *prog)
 {
-   if (!vd->file_set_finished) return NULL;
+   if (!vd || !vd->file_set_finished) return NULL;
    return edje_edit_program_targets_get(vd->layout, prog);
 }
 

-- 


Reply via email to