From 564a5ccc9bd457623b9a963cf7680f97342615ef Mon Sep 17 00:00:00 2001 From: JackLivio Date: Wed, 8 Aug 2018 09:58:33 -0400 Subject: Change boost optional to compare boost::none --- src/components/smart_objects/src/object_schema_item.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index def0c0aceb..f2ec3b088c 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -76,11 +76,11 @@ CObjectSchemaItem::SMember::SMember( bool CObjectSchemaItem::SMember::CheckHistoryFieldVersion( const utils::SemanticVersion& MessageVersion) const { if (MessageVersion.isValid()) { - if (mSince.is_initialized()) { + if (mSince != boost::none) { if (MessageVersion < mSince.get()) { return false; // Msg version predates `since` field } else { - if (mUntil.is_initialized() && (MessageVersion >= mUntil.get())) { + if (mUntil != boost::none && (MessageVersion >= mUntil.get())) { return false; // Msg version newer than `until` field } else { return true; // Mobile msg version falls within specified version @@ -89,7 +89,7 @@ bool CObjectSchemaItem::SMember::CheckHistoryFieldVersion( } } - if (mUntil.is_initialized() && (MessageVersion >= mUntil.get())) { + if (mUntil != boost::none && (MessageVersion >= mUntil.get())) { return false; // Msg version newer than `until` field } else { return true; // Mobile msg version falls within specified version range @@ -168,14 +168,14 @@ Errors::eType CObjectSchemaItem::validate( const SMember& member = it->second; std::set::const_iterator key_it = object_keys.find(key); if (object_keys.end() == key_it) { - if (member.mSince.is_initialized() && + if (member.mSince != boost::none && MessageVersion < member.mSince.get() && member.mHistoryVector.size() > 0) { // Message version predates parameter and a history vector exists. for (uint i = 0; i < member.mHistoryVector.size(); i++) { - if (member.mHistoryVector[i].mSince.is_initialized() && + if (member.mHistoryVector[i].mSince != boost::none && MessageVersion >= member.mHistoryVector[i].mSince.get()) { - if (member.mHistoryVector[i].mUntil.is_initialized() && + if (member.mHistoryVector[i].mUntil != boost::none && MessageVersion >= member.mHistoryVector[i].mUntil.get()) { // MessageVersion is newer than the specified "Until" version continue; @@ -189,9 +189,8 @@ Errors::eType CObjectSchemaItem::validate( } break; } - } else if (member.mHistoryVector[i].mSince.is_initialized() == - false && - member.mHistoryVector[i].mUntil.is_initialized() && + } else if (member.mHistoryVector[i].mSince == boost::none && + member.mHistoryVector[i].mUntil != boost::none && MessageVersion < member.mHistoryVector[i].mUntil.get()) { if (member.mHistoryVector[i].mIsMandatory == true && (member.mHistoryVector[i].mIsRemoved == false)) { -- cgit v1.2.1 From 5f651c9e75441633c4e489d81b09900d1457bfb1 Mon Sep 17 00:00:00 2001 From: JackLivio Date: Wed, 8 Aug 2018 10:02:03 -0400 Subject: Make sure iterator is valid --- src/components/smart_objects/src/object_schema_item.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index f2ec3b088c..d046e49bcd 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -328,11 +328,12 @@ void CObjectSchemaItem::RemoveFakeParams( key.compare(app_id) != 0) { ++it; Object.erase(key); - } else if (members_it->second.mIsRemoved && + } else if (mMembers.end() != members_it && members_it->second.mIsRemoved && members_it->second.CheckHistoryFieldVersion(MessageVersion)) { ++it; Object.erase(key); - } else if (members_it->second.mHistoryVector.size() > 0) { + } else if (mMembers.end() != members_it && + members_it->second.mHistoryVector.size() > 0) { for (uint i = 0; i < members_it->second.mHistoryVector.size(); i++) { if (members_it->second.mHistoryVector[i].CheckHistoryFieldVersion( MessageVersion) && -- cgit v1.2.1