[vlc-commits] Support static modules using extern NULL-terminated list

Rafaël Carré git at videolan.org
Mon Aug 29 15:05:18 CEST 2011


vlc | branch: master | Rafaël Carré <rafael.carre at gmail.com> | Mon Aug 29 08:46:05 2011 -0400| [543ee6a25b818c24485c90295b2b12d1183dcbd4] | committer: Rafaël Carré

Support static modules using extern NULL-terminated list

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=543ee6a25b818c24485c90295b2b12d1183dcbd4
---

 src/modules/bank.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/modules/bank.c b/src/modules/bank.c
index b001d1b..a67128e 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++;



More information about the vlc-commits mailing list