diff options
author | Daniel Stone <daniel@fooishbar.org> | 2012-07-10 02:03:19 +0100 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-07-10 00:31:02 -0700 |
commit | 2fba9445a0357f67641e41ac334b5529c37774a2 (patch) | |
tree | 2205cbf8dbeeb3063e6f763b3a04ea2618423bc8 /mi | |
parent | 9a953e0e9dcb8a8e43cc27ffaef460268fbe1916 (diff) |
Add static extensions before those in modules
Make sure we add static extensions before anything in a module. This is
more or less a no-op at the moment, but will come in handy later when
extension dependency sorting is removed.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'mi')
-rw-r--r-- | mi/miinitext.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/mi/miinitext.c b/mi/miinitext.c index a8644db6b..30c428c8a 100644 --- a/mi/miinitext.c +++ b/mi/miinitext.c @@ -421,22 +421,31 @@ static ExtensionModule staticExtensions[] = { #endif }; - /*ARGSUSED*/ void +void +AddStaticExtensions(void) +{ + static Bool listInitialised = FALSE; + int i; + + if (listInitialised) + return; + listInitialised = TRUE; + + /* Add built-in extensions to the list. */ + for (i = 0; i < ARRAY_SIZE(staticExtensions); i++) + LoadExtension(&staticExtensions[i], TRUE); +} + +void InitExtensions(int argc, char *argv[]) { int i; ExtensionModule *ext; - static Bool listInitialised = FALSE; - - if (!listInitialised) { - /* Add built-in extensions to the list. */ - for (i = 0; i < ARRAY_SIZE(staticExtensions); i++) - LoadExtension(&staticExtensions[i], TRUE); - /* Sort the extensions according the init dependencies. */ - LoaderSortExtensions(); - listInitialised = TRUE; - } + /* Make sure all static extensions have been added, then sort the + * extensions according to their init dependencies. */ + AddStaticExtensions(); + LoaderSortExtensions(); for (i = 0; ExtensionModuleList[i].name != NULL; i++) { ext = &ExtensionModuleList[i]; |