aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2013-02-21 03:53:49 +0000
committerCarsten Haitzler <raster@rasterman.com>2013-02-21 03:53:49 +0000
commite2f3f4e278e9b4b412f54a5a3284f39cfe7d0142 (patch)
treed26836f4181ad8a6cce178e4b28845c3f91c8d59 /src
parent9f530e27d255e396fd6bc79025d3cbead90d2089 (diff)
downloadenlightenment-e2f3f4e278e9b4b412f54a5a3284f39cfe7d0142.tar.gz
enlightenment-e2f3f4e278e9b4b412f54a5a3284f39cfe7d0142.tar.xz
enlightenment-e2f3f4e278e9b4b412f54a5a3284f39cfe7d0142.zip
eobj referenced in struct but only reffed intermittenytly - ref for as
long as there is a handle. avoid segvs! SVN revision: 84271
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_comp.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index db7fdcc9f..603936504 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1522,8 +1522,8 @@ _e_comp_done_defer(E_Comp_Win *cw)
cw->force = 1;
if (cw->delete_me)
{
- if (cw->real_obj && cw->eobj)
- e_object_unref(cw->eobj);
+// if (cw->real_obj && cw->eobj)
+// e_object_unref(E_OBJECT(cw->eobj));
_e_comp_win_del(cw);
}
else cw->force = 0;
@@ -1955,6 +1955,7 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol
CRI("UNHANDLED");
}
cw->eobj = eobj;
+ e_object_ref(E_OBJECT(cw->eobj));
}
else
{
@@ -2187,6 +2188,11 @@ _e_comp_win_del(E_Comp_Win *cw)
{
Evas_Object *o;
+ if (cw->real_obj && cw->eobj)
+ {
+ e_object_unref(E_OBJECT(cw->eobj));
+ cw->eobj = NULL;
+ }
if (cw->animating)
{
cw->c->animating--;
@@ -2450,8 +2456,8 @@ _e_comp_win_hide(E_Comp_Win *cw)
cw->c->animating++;
}
cw->animating = 1;
- if (cw->real_obj && cw->eobj)
- e_object_ref(cw->eobj);
+// if (cw->real_obj && cw->eobj)
+// e_object_ref(cw->eobj);
_e_comp_win_render_queue(cw);
cw->pending_count++;