diff --git a/src/converter/BUILD.bazel b/src/converter/BUILD.bazel index a4fadb54d..040cbecd5 100644 --- a/src/converter/BUILD.bazel +++ b/src/converter/BUILD.bazel @@ -94,6 +94,7 @@ mozc_cc_test( ":segments", ":segments_matchers", "//testing:gunit_main", + "@com_google_absl//absl/types:span", ], ) diff --git a/src/converter/segments_matchers_test.cc b/src/converter/segments_matchers_test.cc index ac00237f0..9207fc04b 100644 --- a/src/converter/segments_matchers_test.cc +++ b/src/converter/segments_matchers_test.cc @@ -30,8 +30,8 @@ #include "converter/segments_matchers.h" #include -#include +#include "absl/types/span.h" #include "converter/segments.h" #include "testing/gmock.h" #include "testing/gunit.h" @@ -55,7 +55,7 @@ Segment::Candidate MakeCandidate(const std::string &key, } Segment MakeSegment(const std::string &key, - const std::vector &values) { + absl::Span values) { Segment seg; seg.set_key(key); for (const std::string &val : values) { diff --git a/src/dictionary/BUILD.bazel b/src/dictionary/BUILD.bazel index 53e88ce79..0155508b0 100644 --- a/src/dictionary/BUILD.bazel +++ b/src/dictionary/BUILD.bazel @@ -336,6 +336,7 @@ mozc_cc_test( "//testing:mozctest", "//testing:testing_util", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) diff --git a/src/dictionary/user_dictionary_session_handler_test.cc b/src/dictionary/user_dictionary_session_handler_test.cc index 188e65556..f375015e0 100644 --- a/src/dictionary/user_dictionary_session_handler_test.cc +++ b/src/dictionary/user_dictionary_session_handler_test.cc @@ -36,6 +36,7 @@ #include #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/file_util.h" #include "base/protobuf/repeated_ptr_field.h" #include "base/system_util.h" @@ -154,7 +155,7 @@ class UserDictionarySessionHandlerTest RepeatedPtrField GetUserDictionaryEntries( uint64_t session_id, uint64_t dictionary_id, - const std::vector &indices) { + absl::Span indices) { Clear(); command_->set_type(UserDictionaryCommand::GET_ENTRIES); command_->set_session_id(session_id); diff --git a/src/prediction/BUILD.bazel b/src/prediction/BUILD.bazel index 1c956cafa..81d978b62 100644 --- a/src/prediction/BUILD.bazel +++ b/src/prediction/BUILD.bazel @@ -400,6 +400,7 @@ mozc_cc_test( "//request:request_test_util", "//testing:gunit_main", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) @@ -501,6 +502,7 @@ mozc_cc_binary( "@com_google_absl//absl/flags:flag", "@com_google_absl//absl/log", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) diff --git a/src/prediction/gen_suggestion_filter_main.cc b/src/prediction/gen_suggestion_filter_main.cc index a99516b9a..207aaf687 100644 --- a/src/prediction/gen_suggestion_filter_main.cc +++ b/src/prediction/gen_suggestion_filter_main.cc @@ -37,6 +37,7 @@ #include "absl/flags/flag.h" #include "absl/log/log.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/codegen_bytearray_stream.h" #include "base/file_stream.h" #include "base/hash.h" @@ -91,19 +92,19 @@ void ReadSafeWords(const absl::string_view safe_list_files, constexpr size_t kMinimumFilterBytes = 100 * 1000; ExistenceFilterBuilder GetFilter(const size_t num_bytes, - const std::vector &hash_list) { + absl::Span hash_list) { LOG(INFO) << "num_bytes: " << num_bytes; ExistenceFilterBuilder filter( ExistenceFilterBuilder::CreateOptimal(num_bytes, hash_list.size())); - for (size_t i = 0; i < hash_list.size(); ++i) { - filter.Insert(hash_list[i]); + for (uint64_t hash : hash_list) { + filter.Insert(hash); } return filter; } bool TestFilter(const ExistenceFilterBuilder &builder, - const std::vector &safe_word_list) { + absl::Span safe_word_list) { ExistenceFilter filter = builder.Build(); for (const std::string &word : safe_word_list) { if (filter.Exists(mozc::Fingerprint(word))) { @@ -116,8 +117,8 @@ bool TestFilter(const ExistenceFilterBuilder &builder, } ExistenceFilterBuilder SetupFilter( - const size_t num_bytes, const std::vector &hash_list, - const std::vector &safe_word_list) { + const size_t num_bytes, absl::Span hash_list, + absl::Span safe_word_list) { constexpr int kNumRetryMax = 10; constexpr int kSizeOffset = 8; // Prevent filtering of common words by false positive. diff --git a/src/prediction/single_kanji_prediction_aggregator_test.cc b/src/prediction/single_kanji_prediction_aggregator_test.cc index 789d6c1c8..e9afa3748 100644 --- a/src/prediction/single_kanji_prediction_aggregator_test.cc +++ b/src/prediction/single_kanji_prediction_aggregator_test.cc @@ -33,6 +33,7 @@ #include #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/strings/unicode.h" #include "composer/composer.h" #include "composer/table.h" @@ -58,7 +59,7 @@ void SetUpInputWithKey(absl::string_view key, composer::Composer *composer, seg->set_segment_type(Segment::FREE); } -bool FindResultByKey(const std::vector &results, +bool FindResultByKey(absl::Span results, const absl::string_view key) { for (const auto &result : results) { if (result.key == key && !result.removed) { diff --git a/src/rewriter/BUILD.bazel b/src/rewriter/BUILD.bazel index 82060e0b3..2e863b45f 100644 --- a/src/rewriter/BUILD.bazel +++ b/src/rewriter/BUILD.bazel @@ -136,6 +136,7 @@ mozc_cc_library( "@com_google_absl//absl/log:check", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], alwayslink = 1, ) @@ -391,6 +392,7 @@ mozc_cc_library( "@com_google_absl//absl/log", "@com_google_absl//absl/log:check", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], alwayslink = 1, ) @@ -1006,6 +1008,7 @@ mozc_cc_library( "@com_google_absl//absl/log", "@com_google_absl//absl/log:check", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], alwayslink = 1, ) @@ -1228,6 +1231,7 @@ mozc_cc_library( "@com_google_absl//absl/log", "@com_google_absl//absl/log:check", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) @@ -1250,6 +1254,7 @@ mozc_cc_test( "//testing:mozctest", "@com_google_absl//absl/container:btree", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) @@ -1293,6 +1298,7 @@ mozc_cc_binary( "@com_google_absl//absl/log", "@com_google_absl//absl/log:check", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) diff --git a/src/rewriter/environmental_filter_rewriter.cc b/src/rewriter/environmental_filter_rewriter.cc index 57de4cc1b..ccb8ae240 100644 --- a/src/rewriter/environmental_filter_rewriter.cc +++ b/src/rewriter/environmental_filter_rewriter.cc @@ -44,6 +44,7 @@ #include "absl/log/check.h" #include "absl/log/log.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/container/serialized_string_array.h" #include "base/text_normalizer.h" #include "base/util.h" @@ -203,7 +204,7 @@ EmojiDataIterator end(const absl::string_view token_array_data) { absl::flat_hash_map> ExtractTargetEmojis( - const std::vector &target_versions, + absl::Span target_versions, const std::pair &range, const SerializedStringArray &string_array) { absl::flat_hash_map> results; @@ -237,7 +238,7 @@ std::u32string SortAndUnique(std::u32string_view codepoints) { } // namespace void CharacterGroupFinder::Initialize( - const std::vector &target_codepoints) { + absl::Span target_codepoints) { std::u32string single_codepoints; for (const auto &codepoints : target_codepoints) { const size_t size = codepoints.size(); diff --git a/src/rewriter/environmental_filter_rewriter.h b/src/rewriter/environmental_filter_rewriter.h index 74a1658f0..a47c8203f 100644 --- a/src/rewriter/environmental_filter_rewriter.h +++ b/src/rewriter/environmental_filter_rewriter.h @@ -56,6 +56,7 @@ #include #include +#include "absl/types/span.h" #include "base/text_normalizer.h" #include "converter/segments.h" #include "data_manager/data_manager_interface.h" @@ -70,7 +71,7 @@ class CharacterGroupFinder { ~CharacterGroupFinder() = default; // Sets target_codepoints, which represents target group. - void Initialize(const std::vector &target_codepoints); + void Initialize(absl::Span target_codepoints); // Finds targeted character in given target codepoints. If found, returns // true. If not found, returns false. bool FindMatch(std::u32string_view target) const; diff --git a/src/rewriter/environmental_filter_rewriter_test.cc b/src/rewriter/environmental_filter_rewriter_test.cc index 13f69e8e0..201520af5 100644 --- a/src/rewriter/environmental_filter_rewriter_test.cc +++ b/src/rewriter/environmental_filter_rewriter_test.cc @@ -37,6 +37,7 @@ #include "absl/container/btree_map.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/container/serialized_string_array.h" #include "base/text_normalizer.h" #include "base/util.h" @@ -65,7 +66,7 @@ void AddSegment(const absl::string_view key, const absl::string_view value, } void AddSegment(const absl::string_view key, - const std::vector &values, Segments *segments) { + absl::Span values, Segments *segments) { Segment *seg = segments->add_segment(); seg->set_key(key); for (const std::string &value : values) { diff --git a/src/rewriter/gen_usage_rewriter_dictionary_main.cc b/src/rewriter/gen_usage_rewriter_dictionary_main.cc index 25c64e508..550780a7d 100644 --- a/src/rewriter/gen_usage_rewriter_dictionary_main.cc +++ b/src/rewriter/gen_usage_rewriter_dictionary_main.cc @@ -111,6 +111,7 @@ #include "absl/strings/str_replace.h" #include "absl/strings/str_split.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/container/serialized_string_array.h" #include "base/file_stream.h" #include "base/init_mozc.h" @@ -326,7 +327,7 @@ void Convert() { std::ios_base::out | std::ios_base::binary); int out_count = 0; for (size_t i = 0; i < conjugation_list.size(); ++i) { - const std::vector &conjugations = + absl::Span conjugations = inflection_map[conjugation_list[i]]; conjugation_index[i] = out_count; if (conjugations.empty()) { diff --git a/src/rewriter/single_kanji_rewriter.cc b/src/rewriter/single_kanji_rewriter.cc index cdf068079..289cc41fe 100644 --- a/src/rewriter/single_kanji_rewriter.cc +++ b/src/rewriter/single_kanji_rewriter.cc @@ -38,6 +38,7 @@ #include "absl/log/check.h" #include "absl/log/log.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/strings/assign.h" #include "base/vlog.h" #include "converter/segments.h" @@ -200,7 +201,7 @@ void SingleKanjiRewriter::AddDescriptionForExistingCandidates( // Insert SingleKanji into segment. bool SingleKanjiRewriter::InsertCandidate( bool is_single_segment, uint16_t single_kanji_id, - const std::vector &kanji_list, Segment *segment) const { + absl::Span kanji_list, Segment *segment) const { DCHECK(segment); DCHECK(!kanji_list.empty()); if (segment->candidates_size() == 0) { diff --git a/src/rewriter/single_kanji_rewriter.h b/src/rewriter/single_kanji_rewriter.h index 6a2e40173..220a491c6 100644 --- a/src/rewriter/single_kanji_rewriter.h +++ b/src/rewriter/single_kanji_rewriter.h @@ -33,9 +33,9 @@ #include #include #include -#include #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "converter/segments.h" #include "data_manager/data_manager_interface.h" #include "dictionary/pos_matcher.h" @@ -58,7 +58,7 @@ class SingleKanjiRewriter : public RewriterInterface { private: void AddDescriptionForExistingCandidates(Segment *segment) const; bool InsertCandidate(bool is_single_segment, uint16_t single_kanji_id, - const std::vector &kanji_list, + absl::Span kanji_list, Segment *segment) const; void FillCandidate(absl::string_view key, absl::string_view value, int cost, uint16_t single_kanji_id, Segment::Candidate *cand) const; diff --git a/src/rewriter/transliteration_rewriter.cc b/src/rewriter/transliteration_rewriter.cc index b23d69de1..208fb6fdb 100644 --- a/src/rewriter/transliteration_rewriter.cc +++ b/src/rewriter/transliteration_rewriter.cc @@ -39,6 +39,7 @@ #include "absl/log/check.h" #include "absl/log/log.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/japanese_util.h" #include "base/number_util.h" #include "base/text_normalizer.h" @@ -183,12 +184,12 @@ void ModifyT13nsForGodan(const absl::string_view key, (*t13ns)[transliteration::FULL_ASCII_CAPITALIZED] = full_ascii_capitalized; } -bool IsTransliterated(const std::vector &t13ns) { +bool IsTransliterated(absl::Span t13ns) { if (t13ns.empty() || t13ns[0].empty()) { return false; } - const std::string &base_candidate = t13ns[0]; + absl::string_view base_candidate = t13ns[0]; for (size_t i = 1; i < t13ns.size(); ++i) { if (t13ns[i] != base_candidate) { return true; @@ -433,7 +434,7 @@ void TransliterationRewriter::InitT13nCandidate( } bool TransliterationRewriter::SetTransliterations( - const std::vector &t13ns, const absl::string_view key, + absl::Span t13ns, const absl::string_view key, Segment *segment) const { if (t13ns.size() != transliteration::NUM_T13N_TYPES || !IsTransliterated(t13ns)) { diff --git a/src/rewriter/transliteration_rewriter.h b/src/rewriter/transliteration_rewriter.h index 19aa75cad..ebe3612c4 100644 --- a/src/rewriter/transliteration_rewriter.h +++ b/src/rewriter/transliteration_rewriter.h @@ -32,9 +32,9 @@ #include #include -#include #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "converter/segments.h" #include "dictionary/pos_matcher.h" #include "request/conversion_request.h" @@ -62,7 +62,7 @@ class TransliterationRewriter : public RewriterInterface { Segment::Candidate *cand) const; // Sets transliteration values into segment. If t13ns is invalid, // false is returned. - bool SetTransliterations(const std::vector &t13ns, + bool SetTransliterations(absl::Span t13ns, absl::string_view key, Segment *segment) const; bool FillT13nsFromComposer(const ConversionRequest &request, Segments *segments) const; diff --git a/src/rewriter/user_segment_history_rewriter.cc b/src/rewriter/user_segment_history_rewriter.cc index 4833821cf..a7ab1eca5 100644 --- a/src/rewriter/user_segment_history_rewriter.cc +++ b/src/rewriter/user_segment_history_rewriter.cc @@ -46,6 +46,7 @@ #include "absl/strings/str_cat.h" #include "absl/strings/str_join.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/config_file_stream.h" #include "base/file_util.h" #include "base/number_util.h" @@ -403,7 +404,7 @@ bool IsT13NCandidate(const Segment::Candidate &cand) { } // namespace bool UserSegmentHistoryRewriter::SortCandidates( - const std::vector &sorted_scores, Segment *segment) const { + absl::Span sorted_scores, Segment *segment) const { const uint32_t top_score = sorted_scores[0].score; const size_t size = std::min(sorted_scores.size(), kMaxRerankSize); constexpr uint32_t kScoreGap = 20; // TODO(taku): no justification diff --git a/src/rewriter/user_segment_history_rewriter.h b/src/rewriter/user_segment_history_rewriter.h index 2939c9ab9..8c22a3af4 100644 --- a/src/rewriter/user_segment_history_rewriter.h +++ b/src/rewriter/user_segment_history_rewriter.h @@ -34,9 +34,9 @@ #include #include #include -#include #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "converter/segments.h" #include "dictionary/pos_group.h" #include "dictionary/pos_matcher.h" @@ -103,7 +103,7 @@ class UserSegmentHistoryRewriter : public RewriterInterface { void InsertTriggerKey(const Segment &segment); bool IsPunctuation(const Segment &seg, const Segment::Candidate &candidate) const; - bool SortCandidates(const std::vector &sorted_scores, + bool SortCandidates(absl::Span sorted_scores, Segment *segment) const; Score Fetch(absl::string_view key, uint32_t weight) const; void Insert(absl::string_view key, bool force); diff --git a/src/session/internal/BUILD.bazel b/src/session/internal/BUILD.bazel index dc553836d..eeba49a33 100644 --- a/src/session/internal/BUILD.bazel +++ b/src/session/internal/BUILD.bazel @@ -125,6 +125,7 @@ mozc_cc_library( "@com_google_absl//absl/log", "@com_google_absl//absl/log:check", "@com_google_absl//absl/strings", + "@com_google_absl//absl/types:span", ], ) diff --git a/src/session/internal/session_output.cc b/src/session/internal/session_output.cc index 477205600..e8ce7a019 100644 --- a/src/session/internal/session_output.cc +++ b/src/session/internal/session_output.cc @@ -43,6 +43,7 @@ #include "absl/log/log.h" #include "absl/strings/str_split.h" #include "absl/strings/string_view.h" +#include "absl/types/span.h" #include "base/strings/assign.h" #include "base/text_normalizer.h" #include "base/util.h" @@ -248,7 +249,7 @@ void SessionOutput::FillAllCandidateWords( void SessionOutput::FillRemovedCandidates( const Segment &segment, commands::CandidateList *candidate_list_proto) { int index = 1000; - const std::vector &candidates = + absl::Span candidates = segment.removed_candidates_for_debug_; for (const Segment::Candidate &candidate : candidates) { commands::CandidateWord *candidate_word_proto =