Skip to content
  • Pekka Paalanen's avatar
    Use weston_compositor_add_destroy_listener_once() in plugins · 6ffbba3a
    Pekka Paalanen authored and Daniel Stone's avatar Daniel Stone committed
    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...
    6ffbba3a