Added XDG compatibility to ivi-shell
[AGL/meta-agl.git] / meta-agl / recipes-graphics / wayland / weston / 0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch
diff --git a/meta-agl/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch b/meta-agl/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch
new file mode 100644 (file)
index 0000000..449b7a0
--- /dev/null
@@ -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;
+ }