diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp index 55a9ad273dbad4376c9beb094701d1ef07794f07..93e33c2e1e0bc3ef2351eaa50fdb89f5b48eba95 100644 --- a/indra/llinventory/llsettingsbase.cpp +++ b/indra/llinventory/llsettingsbase.cpp @@ -174,12 +174,15 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c const auto& other_map = other.map(); const auto& settings_map = settings.map(); + const auto skipEnd = skip.end(); + const auto settingsEnd = settings_map.end(); + for (const auto& llsd_pair : settings_map) { const std::string& key_name = llsd_pair.first; const LLSD& value = llsd_pair.second; - if (skip.contains(key_name)) + if (skip.find(key_name) != skipEnd) continue; LLSD other_value; @@ -232,10 +235,10 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c { const std::string& key_name = llsd_pair.first; - if (skip.contains(key_name)) + if (skip.find(key_name) != skipEnd) continue; - if (settings_map.contains(key_name)) + if (settings_map.find(key_name) != settingsEnd) continue; parammapping_t::const_iterator def_iter = defaults.find(key_name); @@ -257,10 +260,10 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c for (const auto& llsd_pair : other.map()) { // TODO: Should I blend this in instead? - if (!skip.contains(llsd_pair.first)) + if (skip.find(llsd_pair.first) == skipEnd) continue; - if (!settings_map.contains(llsd_pair.first)) + if (settings_map.find(llsd_pair.first) == settingsEnd) continue; newSettings[llsd_pair.first] = llsd_pair.second;