reload lingering modules by name
This commit is contained in:
@@ -138,9 +138,20 @@ namespace Archimedes {
|
||||
return create(Get(), h);
|
||||
}
|
||||
|
||||
virtual Module* load(std::string modulePath) {
|
||||
Module* m = dynamicLoad(modulePath);
|
||||
return load(m);
|
||||
virtual Module* reload(std::string lib) {
|
||||
|
||||
for(std::string s : runOrder) {
|
||||
if(s == lib) {
|
||||
return modules[lib];
|
||||
}
|
||||
}
|
||||
|
||||
return modules.find(lib) != modules.end() ? load(modules[lib]) : nullptr;
|
||||
}
|
||||
|
||||
virtual Module* load(std::string moduleNameOrPath) {
|
||||
Module* m = reload(moduleNameOrPath);
|
||||
return m != nullptr ? m : dynamicLoad(moduleNameOrPath);
|
||||
}
|
||||
|
||||
virtual Module* load(Module* m) {
|
||||
@@ -157,11 +168,12 @@ namespace Archimedes {
|
||||
if(h) {
|
||||
dlclose(h);
|
||||
}
|
||||
return nullptr;
|
||||
return modules[*it];
|
||||
}
|
||||
}
|
||||
|
||||
modules[*m] = m;
|
||||
if(modules.find(*m) == modules.end())
|
||||
modules[*m] = m;
|
||||
|
||||
for(auto it = runOrder.begin(); it != runOrder.end(); it++) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user