From 3db66b453152c3610b858aa1650e1ab3f545a430 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Sat, 29 Apr 2017 17:25:25 +0200 Subject: Client & ClientEnvirnment: don't create fake events (#5676) Instead of create fake events on the stack on each loop call (Game::run), verify is queue is empty or not and handle event directly if there is. This prevents fake ClientEvent creation & memory allocations Same fix is also applied on ClientEnvironment, & rename getClientEvent to getClientEnvEvent to match ClientEnvEvent object --- src/clientenvironment.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/clientenvironment.cpp') diff --git a/src/clientenvironment.cpp b/src/clientenvironment.cpp index cc75fd2d6..36e4437b6 100644 --- a/src/clientenvironment.cpp +++ b/src/clientenvironment.cpp @@ -598,15 +598,13 @@ void ClientEnvironment::getActiveObjects(v3f origin, f32 max_d, } } -ClientEnvEvent ClientEnvironment::getClientEvent() +ClientEnvEvent ClientEnvironment::getClientEnvEvent() { - ClientEnvEvent event; - if(m_client_event_queue.empty()) - event.type = CEE_NONE; - else { - event = m_client_event_queue.front(); - m_client_event_queue.pop(); - } + FATAL_ERROR_IF(m_client_event_queue.empty(), + "ClientEnvironment::getClientEnvEvent(): queue is empty"); + + ClientEnvEvent event = m_client_event_queue.front(); + m_client_event_queue.pop(); return event; } -- cgit v1.2.3