6ffbba3ac1
This introduces a new convention of checking through the compositor destroy listener if the plugin is already initialized. If the plugin is already initialized, then the plugin entry function succeeds as a no-op. This makes it safe to load the same plugin multiple times in a running compositor. Currently module loading functions return failure if a plugin is already loaded, but that will change in the future. Therefore we need this other method of ensuring we do not double-initialize a plugin which would lead to list corruptions the very least. All plugins are converted to use the new helper, except: - those that do not have a destroy listener already, and - hmi-controller which does the same open-coded as the common code pattern did not fit there. Plugins should always have a compositor destroy listener registered since they very least allocate a struct to hold their data. Hence omissions are highlighted in code. Backends do not need this because weston_compositor_load_backend() already protects against double-init. GL-renderer does not export a standard module init function so cannot be initialized the usual way and therefore is not vulnerable to double-init. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com> |
||
---|---|---|
.. | ||
backend-drm.h | ||
backend-fbdev.h | ||
backend-headless.h | ||
backend-rdp.h | ||
backend-wayland.h | ||
backend-x11.h | ||
config-parser.h | ||
libweston.h | ||
matrix.h | ||
meson.build | ||
plugin-registry.h | ||
version.h.in | ||
weston-log.h | ||
windowed-output-api.h | ||
xwayland-api.h | ||
zalloc.h |