summaryrefslogtreecommitdiff
path: root/ivi-shell/ivi-layout.c
diff options
context:
space:
mode:
authorMateusz Polrola <mateuszx.potrola@intel.com>2016-03-09 09:13:26 +0000
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2016-03-15 14:12:06 +0200
commitdada6e3b79aa9219f431a212877ab5391ef72d13 (patch)
tree849dcc3b0744cc1756eb4766be3db5633549fb14 /ivi-shell/ivi-layout.c
parentc6a55dbf0415963ee303d68b254020d5d04e05d2 (diff)
downloadweston-dada6e3b79aa9219f431a212877ab5391ef72d13.tar.gz
ivi-shell: Remove all surface transitions when it is being removed.
If surface transitions are not removed when surface is being removed, it can lead to crash later when transition will finish, as it will try to reference already freed memory. This change exposes function that can remove all existing transitions for given surface and it is being called during surface cleanup. Signed-off-by: Mateusz Polrola <mateuszx.potrola@intel.com> Reviewed-by: Emre Ucan <eucan@de.adit-jv.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'ivi-shell/ivi-layout.c')
-rw-r--r--ivi-shell/ivi-layout.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
index c324b5eb..61897ef8 100644
--- a/ivi-shell/ivi-layout.c
+++ b/ivi-shell/ivi-layout.c
@@ -241,6 +241,8 @@ ivi_layout_surface_destroy(struct ivi_layout_surface *ivisurf)
wl_signal_emit(&layout->surface_notification.removed, ivisurf);
+ ivi_layout_remove_all_surface_transitions(ivisurf);
+
remove_configured_listener(ivisurf);
ivi_layout_surface_remove_notification(ivisurf);