[search] Treat addr:interpolation as Address object. #5028

Closed
vng wants to merge 3 commits from vng-addr into master
vng commented 2023-04-23 16:28:42 +00:00 (Migrated from github.com)

image

![image](/uploads/58c4c3f40c3f4ec65e17753f7a3830f7/233882865-84130c74-a004-478e-af61-0803a1c1b3e3.png)
vng commented 2023-04-23 16:28:42 +00:00 (Migrated from github.com)

requested review from @biodranik

requested review from `@biodranik`
biodranik commented 2023-04-24 05:27:50 +00:00 (Migrated from github.com)

Может буфер вектора хватит? Часто это вызывается?

Может буфер вектора хватит? Часто это вызывается?
biodranik commented 2023-04-24 05:29:14 +00:00 (Migrated from github.com)

Review: Approved

Там просили на платформах показывать ref если нет имени. Это сложно сделать?

**Review:** Approved Там просили на платформах показывать ref если нет имени. Это сложно сделать?
biodranik commented 2023-04-24 05:29:14 +00:00 (Migrated from github.com)

approved this merge request

approved this merge request
biodranik commented 2023-04-24 05:55:51 +00:00 (Migrated from github.com)

Тут не будет копии создаваться точно?

ReverseGeocoder::Building FromFeatureImpl(FeatureType & ft, std::string && hn, double distMeters)
Тут не будет копии создаваться точно? ```suggestion:-0+0 ReverseGeocoder::Building FromFeatureImpl(FeatureType & ft, std::string && hn, double distMeters) ```
biodranik commented 2023-04-24 05:58:11 +00:00 (Migrated from github.com)

А нельзя копирования избежать ненужного? Дальше по коду не везде может быть move, например, если empty, то не нужен.

std::string const & GetHouseNumber(FeatureType & ft)
{
  std::string const & hn = ft.GetHouseNumber();
  if (hn.empty() && ftypes::IsAddressInterpolChecker::Instance()(ft))
    return ft.GetRef();
  return hn;
}
А нельзя копирования избежать ненужного? Дальше по коду не везде может быть move, например, если empty, то не нужен. ```suggestion:-6+0 std::string const & GetHouseNumber(FeatureType & ft) { std::string const & hn = ft.GetHouseNumber(); if (hn.empty() && ftypes::IsAddressInterpolChecker::Instance()(ft)) return ft.GetRef(); return hn; } ```
biodranik commented 2023-04-24 05:58:48 +00:00 (Migrated from github.com)

И тогда можно будет так делать:

  std::string const & hn = GetHouseNumber(ft);
И тогда можно будет так делать: ```suggestion:-0+0 std::string const & hn = GetHouseNumber(ft); ```
biodranik commented 2023-04-24 05:59:35 +00:00 (Migrated from github.com)

Если это при поиске происходит, то лучше избегать ненужных аллокаций. Мало ли будем выдавать результаты сотнями в списке.

Если это при поиске происходит, то лучше избегать ненужных аллокаций. Мало ли будем выдавать результаты сотнями в списке.
vng commented 2023-04-24 11:42:53 +00:00 (Migrated from github.com)

Это усложняет код, дает потенциальное поле для багов, но не дает ничего. Нету оверхеда в пустой строке.

Это усложняет код, дает потенциальное поле для багов, но не дает ничего. Нету оверхеда в пустой строке.
vng commented 2023-04-24 11:46:42 +00:00 (Migrated from github.com)

В данном конкретном случае он даже навредит. Если и пробовать его, то тогда так:
void GetRoadShieldsNames(FeatureType & ft, buffer_vector<string> & res)
Нет смысла тут. Будет 1-2 элемента в процентах 99

В данном конкретном случае он даже навредит. Если и пробовать его, то тогда так: ``` void GetRoadShieldsNames(FeatureType & ft, buffer_vector<string> & res) ``` Нет смысла тут. Будет 1-2 элемента в процентах 99
vng (Migrated from github.com) closed this pull request 2023-04-29 21:34:55 +00:00
vng commented 2023-04-29 21:37:35 +00:00 (Migrated from github.com)

mentioned in merge request !5063

mentioned in merge request !5063
biodranik (Migrated from github.com) approved these changes 2025-03-22 17:52:31 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: organicmaps/organicmaps#5028
No description provided.