return weston_compositor_get_user_data(ec);
}
+void
+ivi_process_destroy(struct wet_process *process, int status, bool call_cleanup)
+{
+ wl_list_remove(&process->link);
+ if (call_cleanup && process->cleanup)
+ process->cleanup(process, status, process->cleanup_data);
+ free(process->path);
+ free(process);
+}
+
struct ivi_output_config *
ivi_init_parsed_options(struct weston_compositor *compositor)
{
bool xwayland = false;
struct sigaction action;
char *renderer = NULL;
+ struct wet_process *process, *process_tmp;
const struct weston_option core_options[] = {
{ WESTON_OPTION_STRING, "renderer", 'r', &renderer },
ivi_policy_destroy(ivi.policy);
+ wl_list_for_each_safe(process, process_tmp, &ivi.child_process_list, link)
+ ivi_process_destroy(process, 0, false);
+
error_signals:
for (size_t i = 0; i < ARRAY_LENGTH(signals); ++i)
if (signals[i])
#include <stdbool.h>
#include "config.h"
+#include <weston.h>
#include <libweston/backend-drm.h>
#include <libweston/libweston.h>
#include <libweston/windowed-output-api.h>
struct ivi_output_config *
ivi_init_parsed_options(struct weston_compositor *compositor);
+void
+ivi_process_destroy(struct wet_process *process, int status, bool call_cleanup);
+
#endif
struct wet_process *process;
};
-static void
-process_destroy(struct wet_process *process, int status, bool call_cleanup)
-{
- wl_list_remove(&process->link);
- if (call_cleanup && process->cleanup)
- process->cleanup(process, status, process->cleanup_data);
- free(process->path);
- free(process);
-}
-
static int
handle_display_fd(int fd, uint32_t mask, void *data)
{
/* Calling this will call the process cleanup, in turn cleaning up the
* client and the core Xwayland state */
if (wxw->process)
- process_destroy(wxw->process, 0, true);
+ ivi_process_destroy(wxw->process, 0, true);
free(wxw);
}