Skip to content

Commit 679fa03

Browse files
committed
Engine: Refactor script loop
1 parent 1ecc9f5 commit 679fa03

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

src/engine/internal/engine.cpp

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -380,26 +380,24 @@ void Engine::runScripts(const std::vector<std::shared_ptr<VirtualMachine>> &scri
380380
assert(script);
381381
m_breakFrame = false;
382382

383-
do {
384-
script->run();
385-
if (script->atEnd() && m_running) {
386-
for (auto &[key, value] : m_runningBroadcastMap) {
387-
size_t index = 0;
388-
389-
for (const auto &pair : value) {
390-
if (pair.second == script.get()) {
391-
value.erase(value.begin() + index);
392-
break;
393-
}
394-
395-
index++;
383+
script->run();
384+
if (script->atEnd() && m_running) {
385+
for (auto &[key, value] : m_runningBroadcastMap) {
386+
size_t index = 0;
387+
388+
for (const auto &pair : value) {
389+
if (pair.second == script.get()) {
390+
value.erase(value.begin() + index);
391+
break;
396392
}
397-
}
398393

399-
if (std::find(m_scriptsToRemove.begin(), m_scriptsToRemove.end(), script.get()) == m_scriptsToRemove.end())
400-
m_scriptsToRemove.push_back(script.get());
394+
index++;
395+
}
401396
}
402-
} while (!script->atEnd() && !m_breakFrame);
397+
398+
if (std::find(m_scriptsToRemove.begin(), m_scriptsToRemove.end(), script.get()) == m_scriptsToRemove.end())
399+
m_scriptsToRemove.push_back(script.get());
400+
}
403401
}
404402

405403
assert(m_running || m_scriptsToRemove.empty());

0 commit comments

Comments
 (0)