diff options
Diffstat (limited to 'chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc')
-rw-r--r-- | chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc b/chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc index 1e5ed929936..614000521de 100644 --- a/chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc +++ b/chromium/components/autofill/core/browser/geo/alternative_state_name_map.cc @@ -27,8 +27,6 @@ AlternativeStateNameMap* AlternativeStateNameMap::GetInstance() { return g_alternative_state_name_map.get(); } -AlternativeStateNameMap::AlternativeStateNameMap() = default; - // static AlternativeStateNameMap::StateName AlternativeStateNameMap::NormalizeStateName( const StateName& text) { @@ -38,6 +36,18 @@ AlternativeStateNameMap::StateName AlternativeStateNameMap::NormalizeStateName( return StateName(normalized_text); } +// static +base::Optional<AlternativeStateNameMap::CanonicalStateName> +AlternativeStateNameMap::GetCanonicalStateName( + const std::string& country_code, + const base::string16& state_name) { + return AlternativeStateNameMap::GetInstance()->GetCanonicalStateName( + AlternativeStateNameMap::CountryCode(country_code), + AlternativeStateNameMap::StateName(state_name)); +} + +AlternativeStateNameMap::AlternativeStateNameMap() = default; + base::Optional<AlternativeStateNameMap::CanonicalStateName> AlternativeStateNameMap::GetCanonicalStateName( const CountryCode& country_code, @@ -82,17 +92,13 @@ base::Optional<StateEntry> AlternativeStateNameMap::GetEntry( GetCanonicalStateName(country_code, normalized_state_string_from_profile, /*is_state_name_normalized=*/true); - if (!canonical_state_name) { - canonical_state_name = - CanonicalStateName(normalized_state_string_from_profile.value()); + if (canonical_state_name) { + auto it = localized_state_names_map_.find( + {country_code, canonical_state_name.value()}); + if (it != localized_state_names_map_.end()) + return it->second; } - DCHECK(canonical_state_name); - auto it = localized_state_names_map_.find( - {country_code, canonical_state_name.value()}); - if (it != localized_state_names_map_.end()) - return it->second; - return base::nullopt; } @@ -101,7 +107,7 @@ void AlternativeStateNameMap::AddEntry( const StateName& normalized_state_value_from_profile, const StateEntry& state_entry, const std::vector<StateName>& normalized_alternative_state_names, - CanonicalStateName* normalized_canonical_state_name) { + const CanonicalStateName& normalized_canonical_state_name) { DCHECK_CALLED_ON_VALID_SEQUENCE(alternative_state_name_map_sequence_checker_); // Example: @@ -120,25 +126,17 @@ void AlternativeStateNameMap::AddEntry( // ("DE", "Bayern") -> "Bayern" // ("DE", "BY") -> "Bayern" // ("DE", "Bavaria") -> "Bayern" - if (localized_state_names_map_.size() == kMaxMapSize || GetCanonicalStateName(country_code, normalized_state_value_from_profile, /*is_state_name_normalized=*/true)) { return; } - if (normalized_canonical_state_name) { - localized_state_names_map_[{ - country_code, *normalized_canonical_state_name}] = state_entry; - for (const auto& alternative_name : normalized_alternative_state_names) { - localized_state_names_reverse_lookup_map_[{ - country_code, alternative_name}] = *normalized_canonical_state_name; - } - } else { - localized_state_names_map_[{ - country_code, - CanonicalStateName(normalized_state_value_from_profile.value())}] = - state_entry; + localized_state_names_map_[{country_code, normalized_canonical_state_name}] = + state_entry; + for (const auto& alternative_name : normalized_alternative_state_names) { + localized_state_names_reverse_lookup_map_[{ + country_code, alternative_name}] = normalized_canonical_state_name; } } |