yakov pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=871c7db5bfaac2f71af18d1192b4bac975086002

commit 871c7db5bfaac2f71af18d1192b4bac975086002
Author: Yakov Goldberg <yako...@samsung.com>
Date:   Mon Apr 6 11:28:51 2015 +0300

    Fix a bug which caused "invalid ref" message
    
    Was trying to call eo_do on deleted object
---
 src/bin/egui_gui/dnd.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/egui_gui/dnd.c b/src/bin/egui_gui/dnd.c
index 5e05af0..6ee6d97 100644
--- a/src/bin/egui_gui/dnd.c
+++ b/src/bin/egui_gui/dnd.c
@@ -16,6 +16,7 @@ typedef struct
    Eo *image; /* image for DnD icon. */
    Eo *obj; /*object, where drag starts */
    Eo *drag_window_obj; /* Object inside drag window. neede to hide it. */
+   Eo *drag_window_obj_wref;
    const Gui_Widget *wdg; /* let's think about it as about DnD data. */
 
    void (*_drag_start_cb)(const Gui_Widget *wdg, const Eo *obj);
@@ -78,7 +79,7 @@ dnd_drag_wdg_get()
 void
 dnd_drag_window_object_visibility_set(Eina_Bool visibility)
 {
-   eo_do(_dnd_info.drag_info->drag_window_obj, 
efl_gfx_visible_set(visibility));
+   eo_do(_dnd_info.drag_info->drag_window_obj_wref, 
efl_gfx_visible_set(visibility));
 }
 
 static void
@@ -330,6 +331,7 @@ _drag_factory_real_object_create(void *data, Evas_Object 
*parent, Evas_Coord *xo
    eo_do(ic, efl_gfx_visible_set(EINA_TRUE),
              elm_obj_widget_part_text_set(NULL, drag_obj_class_name));
    di->drag_window_obj = ic;
+   eo_do(di->drag_window_obj, eo_wref_add(&(di->drag_window_obj_wref)));
 
    return ic;
 }
@@ -389,6 +391,7 @@ _drag_widget_object_create(void *data, Evas_Object *parent, 
Evas_Coord *xoff, Ev
    if (yoff) *yoff = cur_y_global;
 
    di->drag_window_obj = ic = dnd_drag_obj_create(di->wdg, parent);
+   eo_do(di->drag_window_obj, eo_wref_add(&(di->drag_window_obj_wref)));
    return ic;
 }
 

-- 


Reply via email to