From 2ac019017e63d09f9a8bc72baa853b731af9f8bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ta=C5=84ski?= Date: Mon, 22 Nov 2021 14:16:44 +0100 Subject: [PATCH] [EGD-7993] Fixed contacts matching algorithm number.isValid() always returns false if there is no national prefix. --- module-db/Interface/ContactRecord.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/module-db/Interface/ContactRecord.cpp b/module-db/Interface/ContactRecord.cpp index aa5c434c5a12703f11e33345203aa2788e692be6..7c4e83082b97af9e0f023d3aaab9c50011347b93 100644 --- a/module-db/Interface/ContactRecord.cpp +++ b/module-db/Interface/ContactRecord.cpp @@ -1159,10 +1159,11 @@ auto ContactRecordInterface::buildNumberMatcher(unsigned int maxPageSize) { return utils::NumberHolderMatcher( [this](const utils::PhoneNumber &number, auto offset, auto limit) { + auto numbers = !number.get().empty() ? contactDB->number.getLimitOffset(number.get(), offset, limit) + : contactDB->number.getLimitOffset(offset, limit); + std::vector contactNumberHolders; - contactNumberHolders.reserve(limit); - auto numbers = number.isValid() ? contactDB->number.getLimitOffset(number.get(), offset, limit) - : contactDB->number.getLimitOffset(offset, limit); + contactNumberHolders.reserve(numbers.size()); std::move(numbers.begin(), numbers.end(), std::back_inserter(contactNumberHolders)); return contactNumberHolders; },