forked from enlightenment/enlightenment
fix segv with comp post_updates
if we keep a list of e clients... either make sure any client deleted is removed from the list on deletion... OR use ref/unref to ensure it stays alive as long as it's in the list.
This commit is contained in:
parent
6802ae750d
commit
3e17092db8
|
@ -352,7 +352,10 @@ _e_comp_cb_update(E_Comp *c)
|
||||||
/* clear update flag */
|
/* clear update flag */
|
||||||
e_comp_object_render_update_del(ec->frame);
|
e_comp_object_render_update_del(ec->frame);
|
||||||
if (_e_comp_client_update(ec))
|
if (_e_comp_client_update(ec))
|
||||||
c->post_updates = eina_list_append(c->post_updates, ec);
|
{
|
||||||
|
c->post_updates = eina_list_append(c->post_updates, ec);
|
||||||
|
e_object_ref(E_OBJECT(ec));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_e_comp_fps_update(c);
|
_e_comp_fps_update(c);
|
||||||
if (conf->fps_show)
|
if (conf->fps_show)
|
||||||
|
|
|
@ -48,6 +48,7 @@ _e_comp_canvas_render_post(void *data, Evas *e EINA_UNUSED, void *event_info EIN
|
||||||
//INF("POST %p", ec);
|
//INF("POST %p", ec);
|
||||||
if (!e_object_is_del(E_OBJECT(ec)))
|
if (!e_object_is_del(E_OBJECT(ec)))
|
||||||
e_pixmap_image_clear(ec->pixmap, 1);
|
e_pixmap_image_clear(ec->pixmap, 1);
|
||||||
|
e_object_unref(E_OBJECT(ec));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue