From 844444c33b93ab979ad53d23551220564a24e3c5 Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Mon, 12 Jan 2015 18:06:49 -0500 Subject: [PATCH] Optimize loops calling endInstances() Thankies to Drake Arconis/Alchemy~ --- indra/llcommon/lleventtimer.cpp | 2 +- indra/llcommon/llfasttimer_class.cpp | 10 +++++----- indra/llrender/llgl.cpp | 4 ++-- indra/llui/lllayoutstack.cpp | 2 +- indra/newview/lffloaterinvpanel.cpp | 2 +- indra/newview/llfloaterproperties.cpp | 2 +- indra/newview/llfloaterwebcontent.cpp | 6 ++---- indra/newview/llfloaterwebprofile.cpp | 3 +-- 8 files changed, 14 insertions(+), 17 deletions(-) diff --git a/indra/llcommon/lleventtimer.cpp b/indra/llcommon/lleventtimer.cpp index a29a837a8..957b502dc 100644 --- a/indra/llcommon/lleventtimer.cpp +++ b/indra/llcommon/lleventtimer.cpp @@ -65,7 +65,7 @@ LLEventTimer::~LLEventTimer() void LLEventTimer::updateClass() { std::list completed_timers; - for (instance_iter iter = beginInstances(); iter != endInstances(); ) + for (instance_iter iter = beginInstances(), iter_end = endInstances(); iter != iter_end;) { LLEventTimer& timer = *iter++; F32 et = timer.mEventTimer.getElapsedTimeF32(); diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp index e753fe309..81726be89 100644 --- a/indra/llcommon/llfasttimer_class.cpp +++ b/indra/llcommon/llfasttimer_class.cpp @@ -345,7 +345,7 @@ LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name) void LLFastTimer::updateCachedPointers() { // Update DeclareTimer::mFrameState pointers. - for (DeclareTimer::instance_iter it = DeclareTimer::beginInstances(); it != DeclareTimer::endInstances(); ++it) + for (DeclareTimer::instance_iter it = DeclareTimer::beginInstances(), it_end = DeclareTimer::endInstances(); it != it_end; ++it) { // update cached pointer it->mFrameState = &it->mTimer.getFrameState(); @@ -537,7 +537,7 @@ void LLFastTimer::NamedTimer::buildHierarchy() // set up initial tree { - for (instance_iter it = beginInstances(); it != endInstances(); ++it) + for (instance_iter it = beginInstances(), it_end = endInstances(); it != it_end; ++it) { NamedTimer& timer = *it; if (&timer == NamedTimerFactory::instance().getRootTimer()) continue; @@ -677,7 +677,7 @@ void LLFastTimer::NamedTimer::resetFrame() LLSD sd; { - for (instance_iter it = beginInstances(); it != endInstances(); ++it) + for (instance_iter it = beginInstances(), it_end = endInstances(); it != it_end; ++it) { NamedTimer& timer = *it; FrameState& info = timer.getFrameState(); @@ -721,7 +721,7 @@ void LLFastTimer::NamedTimer::resetFrame() // reset for next frame { - for (instance_iter it = beginInstances(); it != endInstances(); ++it) + for (instance_iter it = beginInstances(), it_end = endInstances(); it != it_end; ++it) { NamedTimer& timer = *it; @@ -765,7 +765,7 @@ void LLFastTimer::NamedTimer::reset() // reset all history { - for (instance_iter it = beginInstances(); it != endInstances(); ++it) + for (instance_iter it = beginInstances(), it_end = endInstances(); it != it_end; ++it) { NamedTimer& timer = *it; if (&timer != NamedTimerFactory::instance().getRootTimer()) diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 1471ccfb3..73a5e76af 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -2320,7 +2320,7 @@ void LLGLNamePool::release(GLuint name) //static void LLGLNamePool::upkeepPools() { - for (tracker_t::instance_iter iter = beginInstances(); iter != endInstances(); ++iter) + for (tracker_t::instance_iter iter = beginInstances(), iter_end = endInstances(); iter != iter_end; ++iter) { LLGLNamePool & pool = *iter; pool.upkeep(); @@ -2330,7 +2330,7 @@ void LLGLNamePool::upkeepPools() //static void LLGLNamePool::cleanupPools() { - for (tracker_t::instance_iter iter = beginInstances(); iter != endInstances(); ++iter) + for (tracker_t::instance_iter iter = beginInstances(), iter_end = endInstances(); iter != iter_end; ++iter) { LLGLNamePool & pool = *iter; pool.cleanup(); diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 83e532a65..db3921460 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -534,7 +534,7 @@ void LLLayoutStack::createResizeBar(LLLayoutPanel* panelp) //static void LLLayoutStack::updateClass() { - for (instance_iter it = beginInstances(); it != endInstances(); ++it) + for (instance_iter it = beginInstances(), it_end(endInstances()); it != it_end; ++it) { it->updateLayout(); it->mAnimatedThisFrame = false; diff --git a/indra/newview/lffloaterinvpanel.cpp b/indra/newview/lffloaterinvpanel.cpp index 31d144673..5fde1fa10 100644 --- a/indra/newview/lffloaterinvpanel.cpp +++ b/indra/newview/lffloaterinvpanel.cpp @@ -59,7 +59,7 @@ void LFFloaterInvPanel::closeAll() { // We must make a copy first, because LLInstanceTracker doesn't allow destruction while having iterators to it. std::vector cache; - for (instance_iter i = beginInstances(); i != endInstances(); ++i) + for (instance_iter i = beginInstances(), end(endInstances()); i != end; ++i) { cache.push_back(&*i); } diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index 46b67d1de..f2d82c881 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -981,7 +981,7 @@ void LLFloaterProperties::closeByID(const LLUUID& item_id, const LLUUID &object_ //static void LLFloaterProperties::dirtyAll() { - for(instance_iter it = beginInstances();it!=endInstances();++it) + for(instance_iter it = beginInstances(), it_end(endInstances()); it != it_end; ++it) { it->dirty(); } diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index a8f27731b..98485b755 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -149,8 +149,7 @@ void LLFloaterWebContent::showInstance(const std::string& window_class, Params& LLSD key = p; - instance_iter it = beginInstances(); - for(;it!=endInstances();++it) + for(instance_iter it(beginInstances()), it_end(endInstances()); it != it_end; ++it) { if(it->mKey["window_class"].asString() == window_class) { @@ -255,8 +254,7 @@ void LLFloaterWebContent::preCreate(LLFloaterWebContent::Params& p) std::vector instances; instances.reserve(instanceCount()); - instance_iter it = beginInstances(); - for(;it!=endInstances();++it) + for(instance_iter it(beginInstances()), it_end(endInstances()); it != it_end;++it) { if(it->mKey["window_class"].asString() == p.window_class.getValue()) instances.push_back(&*it); diff --git a/indra/newview/llfloaterwebprofile.cpp b/indra/newview/llfloaterwebprofile.cpp index c506c72fa..31037c20c 100644 --- a/indra/newview/llfloaterwebprofile.cpp +++ b/indra/newview/llfloaterwebprofile.cpp @@ -68,8 +68,7 @@ void LLFloaterWebProfile::showInstance(const std::string& window_class, Params& LLSD key = p; - instance_iter it = beginInstances(); - for(;it!=endInstances();++it) + for(instance_iter it(beginInstances()), it_end(endInstances()); it != it_end; ++it) { if(it->mKey["window_class"].asString() == window_class) {