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:
Carsten Haitzler 2014-02-12 12:30:23 +09:00
parent 6802ae750d
commit 3e17092db8
2 changed files with 5 additions and 1 deletions

View File

@ -352,7 +352,10 @@ _e_comp_cb_update(E_Comp *c)
/* clear update flag */
e_comp_object_render_update_del(ec->frame);
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);
if (conf->fps_show)

View File

@ -48,6 +48,7 @@ _e_comp_canvas_render_post(void *data, Evas *e EINA_UNUSED, void *event_info EIN
//INF("POST %p", ec);
if (!e_object_is_del(E_OBJECT(ec)))
e_pixmap_image_clear(ec->pixmap, 1);
e_object_unref(E_OBJECT(ec));
}
}