X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fcompositor.c;h=d335c60ca4b7b1849842506187153cd68c5186e0;hb=d0f00d6241ec12423472865f3adc56a4c31c2701;hp=c8f9e60a82f56fb195053a5f46e0259f689d5ef8;hpb=ba86e440b28d1ade0b264ee4afd789faff56b30c;p=src%2Fagl-compositor.git diff --git a/src/compositor.c b/src/compositor.c index c8f9e60..d335c60 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -39,7 +39,9 @@ #include #include +#ifdef HAVE_BACKEND_HEADLESS #include +#endif #ifdef HAVE_BACKEND_X11 #include #endif @@ -752,6 +754,10 @@ ivi_enable_remote_outputs(struct ivi_compositor *ivi) } ivi_output = zalloc(sizeof(*ivi_output)); + if (!ivi_output) { + free(_name); + continue; + } ivi_output->ivi = ivi; ivi_output->name = _name; @@ -804,6 +810,10 @@ ivi_enable_waltham_outputs(struct ivi_compositor *ivi) } ivi_output = zalloc(sizeof(*ivi_output)); + if (!ivi_output) { + free(_name); + continue; + } ivi_output->ivi = ivi; ivi_output->name = _name; @@ -1087,6 +1097,7 @@ load_x11_backend(struct ivi_compositor *ivi, int *argc, char *argv[]) } #endif +#ifdef HAVE_BACKEND_HEADLESS static int load_headless_backend(struct ivi_compositor *ivi, int *argc, char **argv) { @@ -1134,6 +1145,13 @@ load_headless_backend(struct ivi_compositor *ivi, int *argc, char **argv) return 0; } +#else +static int +load_headless_backend(struct ivi_compositor *ivi, int *argc, char **argv) +{ + return -1; +} +#endif static int load_backend(struct ivi_compositor *ivi, const char *backend, @@ -1627,13 +1645,14 @@ int wet_main(int argc, char *argv[]) if (version) { printf(PACKAGE_STRING "\n"); - return EXIT_SUCCESS; + ret = EXIT_SUCCESS; + goto exit_signals; } log_ctx = weston_log_ctx_compositor_create(); if (!log_ctx) { fprintf(stderr, "Failed to initialize weston debug framework.\n"); - return ret; + goto exit_signals; } log_scope = weston_compositor_add_log_scope(log_ctx, "log", @@ -1750,6 +1769,11 @@ int wet_main(int argc, char *argv[]) wl_display_destroy_clients(display); error_compositor: + free(backend); + backend = NULL; + free(modules); + modules = NULL; + weston_compositor_tear_down(ivi.compositor); weston_compositor_log_scope_destroy(log_scope); @@ -1773,5 +1797,10 @@ error_signals: if (ivi.config) weston_config_destroy(ivi.config); +exit_signals: + free(log); + free(config_file); + free(socket_name); + free(option_modules); return ret; }