stop using find.
This commit is contained in:
37
src/App.cpp
37
src/App.cpp
@@ -48,35 +48,28 @@ bool App::load(std::string lib, std::list<std::string> blacklist = {}) {
|
||||
|
||||
Module* m = create(h, App::Get());
|
||||
|
||||
if(!blacklist.empty()) {
|
||||
std::cout << "second round!\n";
|
||||
for(auto it = blacklist.begin(); it != blacklist.end(); it++) {
|
||||
if(*it == m->getName()) {
|
||||
std::cout << "Module \"" << *it << "\" is already loaded!\n";
|
||||
delete m;
|
||||
dlclose(h);
|
||||
return false;
|
||||
}
|
||||
for(auto it = blacklist.begin(); it != blacklist.end(); it++) {
|
||||
if(*it == m->getName()) {
|
||||
std::cout << "Module \"" << *it << "\" is already loaded!\n";
|
||||
delete m;
|
||||
dlclose(h);
|
||||
return false;
|
||||
}
|
||||
std::cout << "not the for loop!\n";
|
||||
}
|
||||
|
||||
blacklist.push_back(m->getName());
|
||||
|
||||
if(!m->deps.empty()) {
|
||||
bool skip = false;
|
||||
bool skip = false;
|
||||
for(auto it = m->deps.begin(); it != m->deps.end(); it++) {
|
||||
for(std::string s : blacklist) {
|
||||
auto it = m->deps.find(s);
|
||||
if(it != m->deps.end())
|
||||
if(it->first == s)
|
||||
skip = true;
|
||||
if(skip) {
|
||||
skip = false;
|
||||
continue;
|
||||
} else {
|
||||
std::cout << "it->second: " << it->second << std::endl;
|
||||
load(it->second, blacklist);
|
||||
std::cout << "Gets passed load deps!\n";
|
||||
}
|
||||
}
|
||||
if(skip) {
|
||||
skip = false;
|
||||
continue;
|
||||
} else {
|
||||
load(it->second, blacklist);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user