aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/efl_wl
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-10-18 17:11:36 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-10-25 10:44:16 -0400
commitc7f9f2eef1fa344f6dadd09c9c3eaa7203b7ca92 (patch)
treed1a0a3fb6a95c909c17674c0fce3cbb325a03ca0 /src/lib/efl_wl
parentefl_wl: more closely follow wl spec for input regions (diff)
downloadefl-c7f9f2eef1fa344f6dadd09c9c3eaa7203b7ca92.tar.gz
efl_wl: destroy extant shell surface upon surface deletion
avoid invalid reads later @fix
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r--src/lib/efl_wl/efl_wl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 2bdb222501..9eec04e916 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -2301,6 +2301,12 @@ comp_surface_smart_del(Evas_Object *obj)
}
evas_object_del(cs->img);
evas_object_del(cs->clip);
+ if (cs->shell.surface)
+ {
+ if (cs->role)
+ wl_resource_destroy(cs->role);
+ wl_resource_destroy(cs->shell.surface);
+ }
cs->c->surfaces = eina_inlist_remove(cs->c->surfaces, EINA_INLIST_GET(cs));
cs->c->surfaces_count--;
free(cs);