Fix crash when quitting the first client while another client is connected
This commit is contained in:
parent
a65e8142f3
commit
089ee8ac0a
|
@ -71,8 +71,12 @@ void ClientManager::process_pending_inputs() const
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
bool had_input = false;
|
bool had_input = false;
|
||||||
for (auto& client : m_clients)
|
// Use index based iteration as a m_clients might get mutated during
|
||||||
had_input = client->process_pending_inputs() or had_input;
|
// client input processing, which would break iterator based iteration.
|
||||||
|
// (its fine to skip a client if that happens as had_input will be true
|
||||||
|
// if a client triggers client removal)
|
||||||
|
for (int i = 0; i < m_clients.size(); ++i)
|
||||||
|
had_input = m_clients[i]->process_pending_inputs() or had_input;
|
||||||
|
|
||||||
if (not had_input)
|
if (not had_input)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user