vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Jul 18 21:47:37 2019 +0300| [d948aea6d280d023453b415c388bed585518fb8f] | committer: Rémi Denis-Courmont
modules: add module_Symbol() internal helper > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d948aea6d280d023453b415c388bed585518fb8f --- src/modules/bank.c | 18 ++++++++++++++++++ src/modules/modules.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/modules/bank.c b/src/modules/bank.c index 8bc85b06ba..06a251d877 100644 --- a/src/modules/bank.c +++ b/src/modules/bank.c @@ -592,6 +592,17 @@ static void module_Unmap(vlc_plugin_t *plugin) if (handle != NULL) vlc_dlclose(handle); } + +void *module_Symbol(struct vlc_logger *log, + vlc_plugin_t *plugin, const char *name) +{ + if (module_Map(log, plugin)) + return NULL; + + void *handle = (void *)atomic_load_explicit(&plugin->handle, + memory_order_relaxed); + return vlc_dlsym(handle, name); +} #else int module_Map(struct vlc_logger *log, vlc_plugin_t *plugin) { @@ -603,6 +614,13 @@ static void module_Unmap(vlc_plugin_t *plugin) { (void) plugin; } + +void *module_Symbol(struct vlc_logger *log, + vlc_plugin_t *plugin, const char *name) +{ + (void) log; (void) plugin; (void) name; + return NULL; +} #endif /* HAVE_DYNAMIC_PLUGINS */ /** diff --git a/src/modules/modules.h b/src/modules/modules.h index 1c7d32e8e5..118a3aa7c4 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -111,6 +111,7 @@ void module_LoadPlugins(vlc_object_t *); #define module_LoadPlugins(a) module_LoadPlugins(VLC_OBJECT(a)) void module_EndBank (bool); int module_Map(struct vlc_logger *, vlc_plugin_t *); +void *module_Symbol(struct vlc_logger *, vlc_plugin_t *, const char *name); ssize_t module_list_cap (module_t ***, const char *); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
