diff options
Diffstat (limited to 'meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch')
-rw-r--r-- | meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch new file mode 100644 index 000000000..449b7a0fd --- /dev/null +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch @@ -0,0 +1,66 @@ +index 67619b8f..e9ddf9a4 100644 +--- a/ivi-shell/ivi-shell.c ++++ b/ivi-shell/ivi-shell.c +@@ -497,44 +497,53 @@ wet_shell_init(struct weston_compositor *compositor, + { + struct ivi_shell *shell; + struct ivi_shell_setting setting = { }; +- int retval = -1; + + shell = zalloc(sizeof *shell); + if (shell == NULL) + return -1; + + if (ivi_shell_setting_create(&setting, compositor, argc, argv) != 0) +- return -1; ++ goto err_shell; + + init_ivi_shell(compositor, shell, &setting); ++ /* 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); + + if (input_panel_setup(shell) < 0) +- goto out_settings; ++ goto err_settings; + + shell->text_backend = text_backend_init(compositor); + if (!shell->text_backend) +- goto out_settings; ++ goto err_settings; + + if (wl_global_create(compositor->wl_display, + &ivi_application_interface, 1, + shell, bind_ivi_application) == NULL) +- goto out_settings; ++ 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); + + /* Call module_init of ivi-modules which are defined in weston.ini */ + if (load_controller_modules(compositor, setting.ivi_module, + argc, argv) < 0) +- goto out_settings; ++ goto err_text_backend; ++ ++ return IVI_SUCCEEDED; + +- retval = 0; ++err_text_backend: ++ text_backend_destroy(shell->text_backend); + +-out_settings: ++err_settings: + free(setting.ivi_module); + +- return retval; ++err_shell: ++ free(shell); ++ ++ return IVI_FAILED; + } |