summaryrefslogtreecommitdiff
path: root/src/components/smart_objects/src/object_schema_item.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/smart_objects/src/object_schema_item.cc')
-rw-r--r--src/components/smart_objects/src/object_schema_item.cc31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc
index dee1a7c9c7..01e4ec46e0 100644
--- a/src/components/smart_objects/src/object_schema_item.cc
+++ b/src/components/smart_objects/src/object_schema_item.cc
@@ -57,8 +57,7 @@ SMember::SMember(const ISchemaItemPtr SchemaItem,
const bool IsDeprecated,
const bool IsRemoved,
const std::vector<SMember>& history_vector)
- : mSchemaItem(SchemaItem)
- , mIsMandatory(IsMandatory) {
+ : mSchemaItem(SchemaItem), mIsMandatory(IsMandatory) {
if (Since.size() > 0) {
utils::SemanticVersion since_struct(Since);
if (since_struct.isValid()) {
@@ -252,21 +251,25 @@ 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) {
+ for (SmartMap::const_iterator it = Object.map_begin();
+ it != Object.map_end();) {
const std::string& key = it->first;
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) {
+ if (mMembers.end() == members_it
+ // FIXME(EZamakhov): Remove illegal usage of filed in AM
+ && key.compare(connection_key) != 0 && key.compare(binary_data) != 0 &&
+ key.compare(app_id) != 0) {
+ ++it;
Object.erase(key);
- }
- if (mMembers.end() != members_it) {
- if (GetCorrectMember(members_it->second, MessageVersion).mIsRemoved) {
- Object.erase(key);
- }
+ } else if (mMembers.end() != members_it &&
+ GetCorrectMember(members_it->second, MessageVersion)
+ .mIsRemoved) {
+ ++it;
+ Object.erase(key);
+ } else {
+ ++it;
}
}
}
@@ -285,10 +288,6 @@ const SMember& CObjectSchemaItem::GetCorrectMember(
}
}
}
-
- // If member didn't pass checks above then
- // it becomes not valid and must be removed.
- member.mIsRemoved = true;
// Return member as default
return member;
}