From f1c748db4141ff015638083613cb5710a3bc8466 Mon Sep 17 00:00:00 2001 From: katbohm <96047875+katbohm@users.noreply.github.com> Date: Mon, 10 Jan 2022 15:44:19 +0100 Subject: [PATCH] Do not expose internal DS (iterator) of AreaCodeMaps (#2716) --- .../geocoding/phonenumber_offline_geocoder.cc | 13 +++++-------- .../geocoding/phonenumber_offline_geocoder.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc b/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc index f8b013ce0..1e5a5bacc 100644 --- a/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc +++ b/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc @@ -92,16 +92,12 @@ const AreaCodeMap* PhoneNumberOfflineGeocoder::GetPhonePrefixDescriptions( } AreaCodeMaps::const_iterator it = available_maps_.find(filename); if (it == available_maps_.end()) { - it = LoadAreaCodeMapFromFile(filename); - if (it == available_maps_.end()) { - return NULL; - } + return LoadAreaCodeMapFromFile(filename); } return it->second; } -PhoneNumberOfflineGeocoder::AreaCodeMaps::const_iterator -PhoneNumberOfflineGeocoder::LoadAreaCodeMapFromFile( +const AreaCodeMap* PhoneNumberOfflineGeocoder::LoadAreaCodeMapFromFile( const string& filename) const { const char** const prefix_language_code_pairs_end = prefix_language_code_pairs_ + prefix_language_code_pairs_size_; @@ -114,9 +110,10 @@ PhoneNumberOfflineGeocoder::LoadAreaCodeMapFromFile( AreaCodeMap* const m = new AreaCodeMap(); m->ReadAreaCodeMap(get_prefix_descriptions_( prefix_language_code_pair - prefix_language_code_pairs_)); - return available_maps_.insert(AreaCodeMaps::value_type(filename, m)).first; + return available_maps_.insert(AreaCodeMaps::value_type(filename, m)) + .first->second; } - return available_maps_.end(); + return NULL; } string PhoneNumberOfflineGeocoder::GetCountryNameForNumber( diff --git a/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h b/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h index 9c0951057..ee5209094 100644 --- a/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h +++ b/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h @@ -116,7 +116,7 @@ class PhoneNumberOfflineGeocoder { int prefix_language_code_pairs_size, prefix_descriptions_getter get_prefix_descriptions); - AreaCodeMaps::const_iterator LoadAreaCodeMapFromFile( + const AreaCodeMap* LoadAreaCodeMapFromFile( const string& filename) const ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_); const AreaCodeMap* GetPhonePrefixDescriptions(