Load features after each plugin loaded until all plugins have feature support

This commit is contained in:
Martin Willi
2011-10-14 10:05:47 +02:00
parent 927bc3b5b8
commit 2feed2f3fe
+7 -4
View File
@@ -471,10 +471,9 @@ METHOD(plugin_loader_t, load_plugins, bool,
DBG1(DBG_LIB, "loading critical plugin '%s' failed", token);
}
free(token);
}
enumerator->destroy(enumerator);
if (!critical_failed)
{
/* TODO: we currently load features after each plugin is loaded. This
* will not be necessary once we have features support in all plugins.
*/
while (load_features(this, TRUE, FALSE))
{
/* try load new features until we don't get new ones */
@@ -483,6 +482,10 @@ METHOD(plugin_loader_t, load_plugins, bool,
{
/* second round, ignoring soft dependencies */
}
}
enumerator->destroy(enumerator);
if (!critical_failed)
{
/* report missing dependencies */
load_features(this, FALSE, TRUE);
/* unload plugins that we were not able to load any features for */