summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarsha M M <harsha.manjulamallikarjun@in.bosch.com>2018-08-03 12:41:59 +0530
committerHarsha M M <harsha.manjulamallikarjun@in.bosch.com>2018-08-07 16:10:53 +0530
commitae35f9608155074a6aef4a39a4c7df21738b72a6 (patch)
tree345f4c47c38514ec458556f8ae655933ab7cdd23
parentf7795d2a347dc3797a706971d759111e8e68be18 (diff)
downloadwayland-ivi-extension-ae35f9608155074a6aef4a39a4c7df21738b72a6.tar.gz
ivi-controller: remove all installed signals during de-init
During de-init ensure removal of all the added signals. Otherwise a dongling pointer is left behind which will affect other plugins. Signed-off-by: Harsha M M <harsha.manjulamallikarjun@in.bosch.com> ivi-controller: remove all installated signals during de-init Signed-off-by: Harsha M M <harsha.manjulamallikarjun@in.bosch.com>
-rw-r--r--weston-ivi-shell/src/ivi-controller.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
index 04ed4d9..9220455 100644
--- a/weston-ivi-shell/src/ivi-controller.c
+++ b/weston-ivi-shell/src/ivi-controller.c
@@ -2023,7 +2023,18 @@ ivi_shell_destroy(struct wl_listener *listener, void *data)
struct ivishell *shell =
wl_container_of(listener, shell, destroy_listener);
+ wl_list_remove(&shell->destroy_listener.link);
+
+ wl_list_remove(&shell->output_created.link);
wl_list_remove(&shell->output_destroyed.link);
+ wl_list_remove(&shell->output_resized.link);
+
+ wl_list_remove(&shell->surface_configured.link);
+ wl_list_remove(&shell->surface_removed.link);
+ wl_list_remove(&shell->surface_created.link);
+
+ wl_list_remove(&shell->layer_removed.link);
+ wl_list_remove(&shell->layer_created.link);
wl_list_for_each_safe(ivisurf, ivisurf_next,
&shell->list_surface, link) {