In the event that an ecore_evas (using wayland_shm) gets hidden then
the corresponding wl_surface gets destroyed. If evas_norender is
called after that, the outbuf_redraws_clear function follows.
Outbuf_redraw_clear function ends up trying to post updates to the
wl_surface however if that wl_surface is gone, then we end up crashing.
This patch addresses that issue by checking for a valid wl_surface
inside the engine before trying to post updates to that wl_surface.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
_evas_outbuf_redraws_clear(Outbuf *ob)
{
if (!ob->priv.rect_count) return;
- ob->surface->funcs.post(ob->surface, ob->priv.rects, ob->priv.rect_count);
+ if (ob->info->info.wl_surface)
+ ob->surface->funcs.post(ob->surface, ob->priv.rects, ob->priv.rect_count);
free(ob->priv.rects);
ob->priv.rect_count = 0;
}