From 3025353e8314dfed1b38d2e3f4164a7af1362033 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 4 Nov 2019 14:07:51 +0200 Subject: [PATCH] compositor: allow double-loading modules This is necessary for the test harness to be able to execute the compositor multiple times in the same process. As we never unload opened modules, the first compositor iteration will leave them all loaded and following compositor iterations will then have them already loaded. Signed-off-by: Pekka Paalanen --- compositor/main.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/compositor/main.c b/compositor/main.c index 22ac8b23..07ec9316 100644 --- a/compositor/main.c +++ b/compositor/main.c @@ -865,15 +865,13 @@ wet_load_module_entrypoint(const char *name, const char *entrypoint) module = dlopen(path, RTLD_NOW | RTLD_NOLOAD); if (module) { weston_log("Module '%s' already loaded\n", path); - dlclose(module); - return NULL; - } - - weston_log("Loading module '%s'\n", path); - module = dlopen(path, RTLD_NOW); - if (!module) { - weston_log("Failed to load module: %s\n", dlerror()); - return NULL; + } else { + weston_log("Loading module '%s'\n", path); + module = dlopen(path, RTLD_NOW); + if (!module) { + weston_log("Failed to load module: %s\n", dlerror()); + return NULL; + } } init = dlsym(module, entrypoint); -- 2.34.1