fix for checking duplicate messages with condition

This commit is contained in:
john30
2016-01-27 08:31:01 +01:00
parent f4c5b5818f
commit f60b29fe16
+7 -5
View File
@@ -1178,11 +1178,13 @@ result_t MessageMap::add(Message* message, bool storeByName)
if (!m_addAll) { if (!m_addAll) {
map<unsigned long long, vector<Message*> >::iterator keyIt = m_messagesByKey.find(key); map<unsigned long long, vector<Message*> >::iterator keyIt = m_messagesByKey.find(key);
if (keyIt != m_messagesByKey.end()) { if (keyIt != m_messagesByKey.end()) {
if (!conditional) Message* other = getFirstAvailable(keyIt->second, *message);
return RESULT_ERR_DUPLICATE; // duplicate key if (other != NULL) {
vector<Message*>* messages = &keyIt->second; if (!conditional)
if (!messages->front()->isConditional()) return RESULT_ERR_DUPLICATE; // duplicate key
return RESULT_ERR_DUPLICATE; // duplicate key if (!other->isConditional())
return RESULT_ERR_DUPLICATE; // duplicate key
}
} }
} }
bool isPassive = message->isPassive(); bool isPassive = message->isPassive();