From aab8ecfd3e36d187b5351ee6d8d5dc47d987efc5 Mon Sep 17 00:00:00 2001 From: Sam Hocevar <sam@hocevar.net> Date: Wed, 4 Sep 2013 16:35:52 +0000 Subject: [PATCH] core: fix grave logic bugs in the entity ticker. --- src/ticker.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ticker.cpp b/src/ticker.cpp index 3e325770..7e5463c6 100644 --- a/src/ticker.cpp +++ b/src/ticker.cpp @@ -121,7 +121,7 @@ void Ticker::Ref(Entity *entity) /* Get the entity out of the m_autorelease list. This is usually * very fast since the last entry in autolist is the last * registered entity. */ - for (int i = data->m_autolist.Count(); --i; ) + for (int i = data->m_autolist.Count(); i--; ) { if (data->m_autolist[i] == entity) { @@ -227,7 +227,8 @@ void TickerData::GameThreadTick() for (int i = 0; i < data->m_list[g].Count(); ++i) { Entity *e = data->m_list[g][i]; - Log::Debug(" \\-- %s (m_ref %i, destroy %i)\n", e->GetName(), e->m_ref, e->m_destroy); + Log::Debug(" \\-- [%p] %s (m_ref %i, destroy %i)\n", + e, e->GetName(), e->m_ref, e->m_destroy); } } #endif @@ -298,10 +299,10 @@ void TickerData::GameThreadTick() /* Garbage collect objects that can be destroyed. We can do this * before inserting awaiting objects, because only objects already - * inthe tick lists can be marked for destruction. */ + * in the tick lists can be marked for destruction. */ for (int g = 0; g < Entity::ALLGROUP_END; ++g) { - for (int i = 0; i < data->m_list[g].Count(); ++i) + for (int i = data->m_list[g].Count(); i--; ) { Entity *e = data->m_list[g][i];