diff options
-rw-r--r-- | src/components/smart_objects/src/object_schema_item.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index 876749b256..8b75e79130 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -252,23 +252,22 @@ CObjectSchemaItem::CObjectSchemaItem(const Members& members) void CObjectSchemaItem::RemoveFakeParams( SmartObject& Object, const utils::SemanticVersion& MessageVersion) { - for (SmartMap::const_iterator it = Object.map_begin(); it != Object.map_end(); - ++it) { - const std::string& key = it->first; + for (const auto& key : Object.enumerate()) { std::map<std::string, SMember>::const_iterator members_it = mMembers.find(key); - if (mMembers.end() == members_it && key.compare(connection_key) != 0 && - key.compare(binary_data) != 0 && key.compare(app_id) != 0) { - Object.erase(key); - } - if (mMembers.end() != members_it) { const SMember& member = GetCorrectMember(members_it->second, MessageVersion); if (member.mIsRemoved || !member.mIsValid) { Object.erase(key); } + continue; + } + + if (mMembers.end() == members_it && key.compare(connection_key) != 0 && + key.compare(binary_data) != 0 && key.compare(app_id) != 0) { + Object.erase(key); } } } |