|
@@ -289,13 +289,13 @@ struct Engine::Internal { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void Engine_updateExpander(Engine* that, Module* module, bool side) { |
|
|
|
|
|
|
|
|
static void Engine_updateExpander_NoLock(Engine* that, Module* module, bool side) { |
|
|
Module::Expander& expander = side ? module->rightExpander : module->leftExpander; |
|
|
Module::Expander& expander = side ? module->rightExpander : module->leftExpander; |
|
|
Module* oldExpanderModule = expander.module; |
|
|
Module* oldExpanderModule = expander.module; |
|
|
|
|
|
|
|
|
if (expander.moduleId >= 0) { |
|
|
if (expander.moduleId >= 0) { |
|
|
if (!expander.module || expander.module->id != expander.moduleId) { |
|
|
if (!expander.module || expander.module->id != expander.moduleId) { |
|
|
expander.module = that->getModule(expander.moduleId); |
|
|
|
|
|
|
|
|
expander.module = that->getModule_NoLock(expander.moduleId); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
else { |
|
|
else { |
|
@@ -592,8 +592,8 @@ void Engine::stepBlock(int frames) { |
|
|
|
|
|
|
|
|
// Update expander pointers |
|
|
// Update expander pointers |
|
|
for (Module* module : internal->modules) { |
|
|
for (Module* module : internal->modules) { |
|
|
Engine_updateExpander(this, module, false); |
|
|
|
|
|
Engine_updateExpander(this, module, true); |
|
|
|
|
|
|
|
|
Engine_updateExpander_NoLock(this, module, false); |
|
|
|
|
|
Engine_updateExpander_NoLock(this, module, true); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Launch workers |
|
|
// Launch workers |
|
|