static modules list failed
This commit is contained in:
@@ -11,17 +11,13 @@ namespace Archimedes {
|
||||
|
||||
friend class App;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
typedef Module* create_t(void*, App*);
|
||||
|
||||
static std::list<std::string*> modules;
|
||||
|
||||
static std::list<std::string*>& GetModules() { return modules; }
|
||||
|
||||
Module(void* h, App* a) : handle(h), app(a) { modules.push_back(&name); }
|
||||
Module(void* h, App* a) : handle(h), app(a) {}
|
||||
|
||||
virtual ~Module() { modules.remove_if([this](std::string* s) -> bool { return s ? *s == name : false; }); }
|
||||
virtual ~Module() {}
|
||||
|
||||
virtual void run() = 0;
|
||||
virtual void onLoad() = 0;
|
||||
@@ -42,6 +38,4 @@ namespace Archimedes {
|
||||
};
|
||||
}
|
||||
|
||||
auto Archimedes::Module::modules = std::list<std::string*>();
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,8 +11,5 @@ Print::~Print() {
|
||||
void Print::run() {
|
||||
std::cout << "Print lib loaded and run!\n";
|
||||
|
||||
for(auto m : Archimedes::Module::GetModules())
|
||||
std::cout << m << std::endl;
|
||||
|
||||
app->stopModule(self);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ void MinimalApp::run() {
|
||||
for(auto* m : modules)
|
||||
m->onLoad();
|
||||
|
||||
for(auto* s : Archimedes::Module::modules)
|
||||
std::cout << "Module: " << (s ? *s : "nullptr") << std::endl;
|
||||
// Main loop
|
||||
while (!done && !modules.empty()) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user