summaryrefslogtreecommitdiff
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
parent6006fab98dfb67d2317fcb9c45a529da23d5e793 (diff)
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)
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);