diff --git a/src/anchored_set_variable.cc b/src/anchored_set_variable.cc index ec087775dd..1931d6cd6d 100644 --- a/src/anchored_set_variable.cc +++ b/src/anchored_set_variable.cc @@ -109,12 +109,11 @@ void AnchoredSetVariable::resolve(const std::string &key, std::unique_ptr AnchoredSetVariable::resolveFirst( const std::string &key) { - auto range = equal_range(key); - for (auto it = range.first; it != range.second; ++it) { - std::unique_ptr b(new std::string()); - b->assign(it->second->getValue()); - return b; + + if (auto search = this->find(key); search != this->end()) { + return std::make_unique(search->second->getValue()); } + return nullptr; } diff --git a/src/collection/backend/in_memory-per_process.cc b/src/collection/backend/in_memory-per_process.cc index 59aeb105f1..a4ca5e2e5d 100644 --- a/src/collection/backend/in_memory-per_process.cc +++ b/src/collection/backend/in_memory-per_process.cc @@ -67,13 +67,13 @@ bool InMemoryPerProcess::storeOrUpdateFirst(const std::string &key, bool InMemoryPerProcess::updateFirst(const std::string &key, const std::string &value) { pthread_mutex_lock(&m_lock); - auto range = this->equal_range(key); - for (auto it = range.first; it != range.second; ++it) { - it->second.setValue(value); + if (auto search = this->find(key); search != this->end()) { + search->second.setValue(value); pthread_mutex_unlock(&m_lock); return true; } + pthread_mutex_unlock(&m_lock); return false; } @@ -97,11 +97,11 @@ void InMemoryPerProcess::delIfExpired(const std::string& key) { void InMemoryPerProcess::setExpiry(const std::string& key, int32_t expiry_seconds) { pthread_mutex_lock(&m_lock); - auto range = this->equal_range(key); - for (auto it = range.first; it != range.second; ++it) { - it->second.setExpiry(expiry_seconds); + + if (auto search = this->find(key); search != this->end()) { + search->second.setExpiry(expiry_seconds); pthread_mutex_unlock(&m_lock); - return; + return; } // We allow an expiry value to be set for a key that has not (yet) had a value set.