diff options
Diffstat (limited to 'meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch')
-rw-r--r-- | meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch b/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch new file mode 100644 index 00000000..b1e0b8a5 --- /dev/null +++ b/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch @@ -0,0 +1,57 @@ +diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c +index 58f53bc5..34cdce27 100644 +--- a/ivi-shell/ivi-shell.c ++++ b/ivi-shell/ivi-shell.c +@@ -484,13 +484,14 @@ wet_shell_init(struct weston_compositor *compositor, + int *argc, char *argv[]) + { + struct ivi_shell *shell; +- int retval = -1; + + shell = zalloc(sizeof *shell); + if (shell == NULL) +- return -1; ++ goto err_shell; + + init_ivi_shell(compositor, shell); ++ /* TODO deinit_ivi_shell should be implemented, since init_ivi_shell is ++ * initializing multiple lists. */ + + shell->destroy_listener.notify = shell_destroy; + wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener); +@@ -499,22 +500,29 @@ wet_shell_init(struct weston_compositor *compositor, + wl_signal_add(&compositor->wake_signal, &shell->wake_listener); + + if (input_panel_setup(shell) < 0) +- goto out; ++ goto err_shell; + + shell->text_backend = text_backend_init(compositor); + if (!shell->text_backend) +- goto out; ++ goto err_shell; + + if (wl_global_create(compositor->wl_display, + &ivi_application_interface, 1, + shell, bind_ivi_application) == NULL) +- goto out; ++ goto err_text_backend; + + ivi_layout_init_with_compositor(compositor); ++ /* TODO ivi_layout_destroy should be implemented, since multiple lists ++ * and signals are initialized.*/ + shell_add_bindings(compositor, shell); + +- retval = 0; ++ return IVI_SUCCEEDED; + +-out: +- return retval; ++err_text_backend: ++ text_backend_destroy(shell->text_backend); ++ ++err_shell: ++ free(shell); ++ ++ return IVI_FAILED; + } |