evas-wayland-shm: Don't post updates to surface if no surface

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>
This commit is contained in:
Chris Michael 2016-10-28 08:57:10 -04:00
parent 2c09a35b6c
commit 21a8fbde7e
1 changed files with 2 additions and 1 deletions

View File

@ -625,7 +625,8 @@ void
_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;
}