From f696ee93375f1e678d992d6e7aa2aa0133289aea Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 4 Nov 2019 14:07:51 +0200 Subject: [PATCH] libweston: 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 --- libweston/compositor.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index af0da062..72a2905e 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -7618,15 +7618,13 @@ weston_load_module(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);