diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-10-18 17:11:36 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-10-25 10:44:16 -0400 |
commit | c7f9f2eef1fa344f6dadd09c9c3eaa7203b7ca92 (patch) | |
tree | d1a0a3fb6a95c909c17674c0fce3cbb325a03ca0 /src/lib | |
parent | 6006fab98dfb67d2317fcb9c45a529da23d5e793 (diff) |
efl_wl: destroy extant shell surface upon surface deletion
avoid invalid reads later
@fix
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/efl_wl/efl_wl.c | 6 |
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) | |||
2301 | } | 2301 | } |
2302 | evas_object_del(cs->img); | 2302 | evas_object_del(cs->img); |
2303 | evas_object_del(cs->clip); | 2303 | evas_object_del(cs->clip); |
2304 | if (cs->shell.surface) | ||
2305 | { | ||
2306 | if (cs->role) | ||
2307 | wl_resource_destroy(cs->role); | ||
2308 | wl_resource_destroy(cs->shell.surface); | ||
2309 | } | ||
2304 | cs->c->surfaces = eina_inlist_remove(cs->c->surfaces, EINA_INLIST_GET(cs)); | 2310 | cs->c->surfaces = eina_inlist_remove(cs->c->surfaces, EINA_INLIST_GET(cs)); |
2305 | cs->c->surfaces_count--; | 2311 | cs->c->surfaces_count--; |
2306 | free(cs); | 2312 | free(cs); |