From 9749d9fee6db99da1ab861dc04ec63ef973db3e0 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Thu, 5 Mar 2015 15:34:39 +0100 Subject: Fix issue #2441: crash on respawn, since a conversion std::list to std::vector on Environment.cpp * Also change some std::list to std::vector for ClientMap::renderMap * Remove disabled code in ClientMap::renderMap, disabled since a long time --- src/environment.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/environment.cpp') diff --git a/src/environment.cpp b/src/environment.cpp index b1372431f..60a26e65f 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -2383,13 +2383,16 @@ void ClientEnvironment::step(float dtime) g_profiler->avg("CEnv: num of simple objects", m_simple_objects.size()); for(std::vector::iterator i = m_simple_objects.begin(); i != m_simple_objects.end();) { - ClientSimpleObject *simple = *i; std::vector::iterator cur = i; - ++i; + ClientSimpleObject *simple = *cur; + simple->step(dtime); - if(simple->m_to_be_removed){ + if(simple->m_to_be_removed) { delete simple; - m_simple_objects.erase(cur); + i = m_simple_objects.erase(cur); + } + else { + ++i; } } } -- cgit v1.2.3