• Rémi Denis-Courmont's avatar
    Lazily resolve plugins during scanning · 8277183c
    Rémi Denis-Courmont authored
    There are two advantages:
     - scanning uncached plugins is much faster,
     - plugins with broken dependencies are visible in the modules list.
    
    Plugins are still resolved "now" if they are probed by module_need().
    This is a safety feature (the run-time linker would exit silently if it
    hit an unresolved symbol). As the previous commit unloads all uncached
    plugins, we can reload the plugins with different flags as needed.
    
    Plugins with broken/missing underlying libraries will trigger an error
    only when used, rather than when scanned. vlc-cache-gen is then a bit
    more robust against messed up packages installation (it will not skip
    plugins anymore). Also, dialog_Fatal() could be used to report run-time
    errors. This was not possible previously: the error would occur before
    the UI was started.
    
    Note that this is not implemented on Windows, as there is no support
    (that I know) for lazy resolution of DLLs.
    8277183c
plugin.c 3.32 KB