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); DBG1(DBG_LIB, "loading critical plugin '%s' failed", token);
} }
free(token); free(token);
} /* TODO: we currently load features after each plugin is loaded. This
enumerator->destroy(enumerator); * will not be necessary once we have features support in all plugins.
if (!critical_failed) */
{
while (load_features(this, TRUE, FALSE)) while (load_features(this, TRUE, FALSE))
{ {
/* try load new features until we don't get new ones */ /* 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 */ /* second round, ignoring soft dependencies */
} }
}
enumerator->destroy(enumerator);
if (!critical_failed)
{
/* report missing dependencies */ /* report missing dependencies */
load_features(this, FALSE, TRUE); load_features(this, FALSE, TRUE);
/* unload plugins that we were not able to load any features for */ /* unload plugins that we were not able to load any features for */