vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Oct 27 22:35:57 2016 +0300| [e8698d241f0a2475a72ff208568be2068e12ef4e] | committer: Rémi Denis-Courmont
modules: remove module_t.submodule and simplify > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e8698d241f0a2475a72ff208568be2068e12ef4e --- src/modules/bank.c | 26 ++++++-------------------- src/modules/cache.c | 2 +- src/modules/entry.c | 35 +++++++++++++++-------------------- src/modules/modules.h | 1 - 4 files changed, 22 insertions(+), 42 deletions(-) diff --git a/src/modules/bank.c b/src/modules/bank.c index 3b27acb..7bd32d0 100644 --- a/src/modules/bank.c +++ b/src/modules/bank.c @@ -603,7 +603,7 @@ module_t **module_list_get (size_t *n) tab = nt; tab[i++] = mod; - for (module_t *subm = mod->submodule; subm; subm = subm->next) + for (module_t *subm = mod->next; subm != NULL; subm = subm->next) tab[i++] = subm; } *n = i; @@ -634,16 +634,9 @@ ssize_t module_list_cap (module_t ***restrict list, const char *cap) assert (list != NULL); for (vlc_plugin_t *lib = vlc_plugins; lib != NULL; lib = lib->next) - { - module_t *mod = lib->module; - assert(mod != NULL); - - if (module_provides (mod, cap)) - n++; - for (module_t *subm = mod->submodule; subm != NULL; subm = subm->next) - if (module_provides (subm, cap)) + for (module_t *m = lib->module; m != NULL; m = m->next) + if (module_provides(m, cap)) n++; - } module_t **tab = malloc (sizeof (*tab) * n); *list = tab; @@ -651,16 +644,9 @@ ssize_t module_list_cap (module_t ***restrict list, const char *cap) return -1; for (vlc_plugin_t *lib = vlc_plugins; lib != NULL; lib = lib->next) - { - module_t *mod = lib->module; - assert(mod != NULL); - - if (module_provides (mod, cap)) - *(tab++)= mod; - for (module_t *subm = mod->submodule; subm != NULL; subm = subm->next) - if (module_provides (subm, cap)) - *(tab++) = subm; - } + for (module_t *m = lib->module; m != NULL; m = m->next) + if (module_provides (m, cap)) + *(tab++) = m; assert (tab == *list + n); qsort (*list, n, sizeof (*tab), modulecmp); diff --git a/src/modules/cache.c b/src/modules/cache.c index 8d90a9e..fd8adaa 100644 --- a/src/modules/cache.c +++ b/src/modules/cache.c @@ -640,7 +640,7 @@ static int CacheSaveBank(FILE *file, vlc_plugin_t *const *cache, size_t n) i_submodule = module->submodule_count; SAVE_IMMEDIATE( i_submodule ); - for (module = module->submodule; module != NULL; module = module->next) + for (module = module->next; module != NULL; module = module->next) if (CacheSaveModule(file, module)) goto error; diff --git a/src/modules/entry.c b/src/modules/entry.c index cdafb18..e269897 100644 --- a/src/modules/entry.c +++ b/src/modules/entry.c @@ -44,19 +44,21 @@ module_t *vlc_module_create(vlc_plugin_t *plugin) if (module == NULL) return NULL; - /* TODO: finish replacing module/submodules with plugin/modules */ + /* NOTE XXX: For backward compatibility with preferences UIs, the first + * module must stay first. That defines under which module, the + * configuration items of the plugin belong. The order of the following + * entries is irrelevant. */ module_t *parent = plugin->module; if (parent == NULL) module->next = NULL; else { - module->next = parent->submodule; - parent->submodule = module; + module->next = parent->next; + parent->next = module; parent->submodule_count++; } module->plugin = plugin; - module->submodule = NULL; module->submodule_count = 0; module->psz_shortname = NULL; @@ -78,14 +80,14 @@ module_t *vlc_module_create(vlc_plugin_t *plugin) */ void vlc_module_destroy (module_t *module) { - for (module_t *m = module->submodule, *next; m != NULL; m = next) + while (module != NULL) { - next = m->next; - vlc_module_destroy (m); - } + module_t *next = module->next; - free (module->pp_shortcuts); - free (module); + free(module->pp_shortcuts); + free(module); + module = next; + } } vlc_plugin_t *vlc_plugin_create(void) @@ -592,16 +594,9 @@ int vlc_plugin_resolve(vlc_plugin_t *plugin, vlc_plugin_cb entry) int ret = -1; /* Resolve modules activate/deactivate callbacks */ - module_t *module = plugin->module; - assert(module != NULL); - - if (vlc_plugin_get_symbol(syms, module->activate_name, - &module->pf_activate) - || vlc_plugin_get_symbol(syms, module->deactivate_name, - &module->pf_deactivate)) - goto error; - - for (module = module->submodule; module != NULL; module = module->next) + for (module_t *module = plugin->module; + module != NULL; + module = module->next) { if (vlc_plugin_get_symbol(syms, module->activate_name, &module->pf_activate) diff --git a/src/modules/modules.h b/src/modules/modules.h index 3dc1971..bf04563 100644 --- a/src/modules/modules.h +++ b/src/modules/modules.h @@ -79,7 +79,6 @@ struct module_t { vlc_plugin_t *plugin; /**< Plug-in/library containing the module */ module_t *next; - module_t *submodule; unsigned submodule_count; /** Shortcuts to the module */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
