@@ -309,15 +309,15 @@ void Engine::initClone(std::shared_ptr<Sprite> clone)
309309 }
310310 }
311311
312- assert (std::find (m_clones.begin (), m_clones.end (), clone. get () ) == m_clones.end ());
312+ assert (std::find (m_clones.begin (), m_clones.end (), clone) == m_clones.end ());
313313 assert (std::find (m_executableTargets.begin (), m_executableTargets.end (), clone.get ()) == m_executableTargets.end ());
314- m_clones.push_back (clone. get () );
314+ m_clones.insert (clone);
315315 m_executableTargets.push_back (clone.get ()); // execution order needs to be updated after this
316316}
317317
318318void Engine::deinitClone (std::shared_ptr<Sprite> clone)
319319{
320- m_clones.erase (std::remove (m_clones. begin (), m_clones. end (), clone. get ()), m_clones. end () );
320+ m_clones.erase (clone);
321321 m_executableTargets.erase (std::remove (m_executableTargets.begin (), m_executableTargets.end (), clone.get ()), m_executableTargets.end ());
322322}
323323
@@ -1218,8 +1218,8 @@ void Engine::deleteClones()
12181218void Engine::removeExecutableClones ()
12191219{
12201220 // Remove clones from the executable targets
1221- for (Target *target : m_clones)
1222- m_executableTargets.erase (std::remove (m_executableTargets.begin (), m_executableTargets.end (), target ), m_executableTargets.end ());
1221+ for (std::shared_ptr<Sprite> clone : m_clones)
1222+ m_executableTargets.erase (std::remove (m_executableTargets.begin (), m_executableTargets.end (), clone. get () ), m_executableTargets.end ());
12231223}
12241224
12251225void Engine::updateFrameDuration ()
0 commit comments