diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llgltfmateriallist.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llgltfmateriallist.h | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llgltfmateriallist.cpp b/indra/newview/llgltfmateriallist.cpp index 84cf746198..0fd5f37b51 100644 --- a/indra/newview/llgltfmateriallist.cpp +++ b/indra/newview/llgltfmateriallist.cpp @@ -175,7 +175,12 @@ void LLGLTFMaterialList::flushMaterials() const F64 MAX_INACTIVE_TIME = 30.f; F64 cur_time = LLTimer::getTotalSeconds(); - uuid_mat_map_t::iterator iter = mList.upper_bound(mLastUpdateKey); + // advance iter one past the last key we updated + uuid_mat_map_t::iterator iter = mList.find(mLastUpdateKey); + if (iter != mList.end()) { + ++iter; + } + while (update_count-- > 0) { if (iter == mList.end()) diff --git a/indra/newview/llgltfmateriallist.h b/indra/newview/llgltfmateriallist.h index 3d97baf5f8..4b905e32c9 100644 --- a/indra/newview/llgltfmateriallist.h +++ b/indra/newview/llgltfmateriallist.h @@ -30,7 +30,7 @@ #include "llgltfmaterial.h" #include "llpointer.h" -#include <map> +#include <unordered_map> class LLFetchedGLTFMaterial; @@ -49,7 +49,7 @@ public: static void registerCallbacks(); private: - typedef std::map<LLUUID, LLPointer<LLFetchedGLTFMaterial > > uuid_mat_map_t; + typedef std::unordered_map<LLUUID, LLPointer<LLFetchedGLTFMaterial > > uuid_mat_map_t; uuid_mat_map_t mList; LLUUID mLastUpdateKey; |