From 599d183170a0b99c2bee9c898b0a79793debed4c Mon Sep 17 00:00:00 2001 From: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> Date: Wed, 8 Nov 2023 19:46:36 +0100 Subject: [PATCH] [search][core] Init the TypesHolder once only and then re-use Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> --- search/intermediate_result.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/search/intermediate_result.cpp b/search/intermediate_result.cpp index 6e84133e64..b4acec2a11 100644 --- a/search/intermediate_result.cpp +++ b/search/intermediate_result.cpp @@ -280,19 +280,21 @@ void FillDetails(FeatureType & ft, Result::Details & details) } } - details.m_isHotel = ftypes::IsHotelChecker::Instance()(ft); + feature::TypesHolder const typesHolder(ft); + + details.m_isHotel = ftypes::IsHotelChecker::Instance()(typesHolder); if (details.m_isHotel && strings::to_uint(ft.GetMetadata(feature::Metadata::FMD_STARS), details.m_stars)) details.m_stars = std::min(details.m_stars, osm::MapObject::kMaxStarsCount); else details.m_stars = 0; - auto const cuisines = feature::GetLocalizedCuisines(feature::TypesHolder(ft)); + auto const cuisines = feature::GetLocalizedCuisines(typesHolder); details.m_cuisine = strings::JoinStrings(cuisines, osm::MapObject::kFieldsSeparator); auto const roadShields = ftypes::GetRoadShieldsNames(ft); details.m_roadShields = strings::JoinStrings(roadShields, osm::MapObject::kFieldsSeparator); - details.m_fee = feature::GetLocalizedFeeType(feature::TypesHolder(ft)); + details.m_fee = feature::GetLocalizedFeeType(typesHolder); details.m_isInitialized = true; }