From 543ee6a25b818c24485c90295b2b12d1183dcbd4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Mon, 29 Aug 2011 08:46:05 -0400 Subject: [PATCH] Support static modules using extern NULL-terminated list --- src/modules/bank.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/modules/bank.c b/src/modules/bank.c index b001d1bdc9..a67128ec68 100644 --- a/src/modules/bank.c +++ b/src/modules/bank.c @@ -71,6 +71,25 @@ static void module_StoreBank (module_t *module) modules.head = module; } +#ifdef __GNUC__ +__attribute__((weak)) +#else +#pragma weak vlc_static_modules +#endif +extern vlc_plugin_cb vlc_static_modules[]; + +static void module_InitStaticModules(void) +{ + if (!vlc_static_modules) + return; + + for (unsigned i = 0; vlc_static_modules[i]; i++) { + module_t *module = module_InitStatic (vlc_static_modules[i]); + if (likely(module != NULL)) + module_StoreBank (module); + } +} + /** * Init bank * @@ -92,6 +111,7 @@ void module_InitBank (void) if (likely(module != NULL)) module_StoreBank (module); + module_InitStaticModules(); config_SortConfig (); } modules.usage++; -- 2.39.5