Index: ui/app_list/search/mixer.cc |
diff --git a/ui/app_list/search/mixer.cc b/ui/app_list/search/mixer.cc |
index 0e8cdb33e00ed17b979d39ed499f39db425ea793..78db4de53756c8dae7b7a17c6e5c776e3055460d 100644 |
--- a/ui/app_list/search/mixer.cc |
+++ b/ui/app_list/search/mixer.cc |
@@ -28,8 +28,7 @@ void UpdateResult(const SearchResult& source, SearchResult* target) { |
} // namespace |
-Mixer::SortData::SortData() : result(NULL), score(0.0) { |
-} |
+Mixer::SortData::SortData() : result(nullptr), score(0.0) {} |
Mixer::SortData::SortData(SearchResult* result, double score) |
: result(result), score(score) { |
@@ -47,21 +46,22 @@ class Mixer::Group { |
: max_results_(max_results), multiplier_(multiplier) {} |
~Group() {} |
- void AddProvider(SearchProvider* provider) { providers_.push_back(provider); } |
+ void AddProvider(SearchProvider* provider) { |
+ providers_.emplace_back(provider); |
+ } |
void FetchResults(bool is_voice_query, const KnownResults& known_results) { |
results_.clear(); |
for (const SearchProvider* provider : providers_) { |
- for (SearchResult* result : provider->results()) { |
+ for (const auto& result : provider->results()) { |
DCHECK(!result->id().empty()); |
// We cannot rely on providers to give relevance scores in the range |
// [0.0, 1.0] (e.g., PeopleProvider directly gives values from the |
// Google+ API). Clamp to that range. |
- double relevance = std::min(std::max(result->relevance(), 0.0), 1.0); |
- |
- double multiplier = multiplier_; |
+ const double relevance = |
+ std::min(std::max(result->relevance(), 0.0), 1.0); |
double boost = 0.0; |
// Recommendations should not be affected by query-to-launch correlation |
@@ -97,7 +97,7 @@ class Mixer::Group { |
boost += 4.0; |
} |
- results_.push_back(SortData(result, relevance * multiplier + boost)); |
+ results_.emplace_back(result.get(), relevance * multiplier_ + boost); |
} |
} |
@@ -145,7 +145,7 @@ void Mixer::MixAndPublish(bool is_voice_query, |
// Add results from each group. Limit to the maximum number of results in each |
// group. |
for (const Group* group : groups_) { |
- size_t num_results = |
+ const size_t num_results = |
std::min(group->results().size(), group->max_results()); |
results.insert(results.end(), group->results().begin(), |
group->results().begin() + num_results); |
@@ -157,8 +157,8 @@ void Mixer::MixAndPublish(bool is_voice_query, |
RemoveDuplicates(&results); |
std::sort(results.begin(), results.end()); |
- if (results.size() < num_max_results) { |
- size_t original_size = results.size(); |
+ const size_t original_size = results.size(); |
+ if (original_size < num_max_results) { |
// We didn't get enough results. Insert all the results again, and this |
// time, do not limit the maximum number of results from each group. (This |
// will result in duplicates, which will be removed by RemoveDuplicates.) |
@@ -192,7 +192,7 @@ void Mixer::Publish(const SortedResults& new_results, |
// meaningful indexes. |
auto current_results = ui_results->RemoveAll(); |
std::map<std::string, std::unique_ptr<SearchResult>> ui_results_map; |
- for (std::unique_ptr<SearchResult>& ui_result : current_results) |
+ for (auto& ui_result : current_results) |
ui_results_map[ui_result->id()] = std::move(ui_result); |
// Add items back to |ui_results| in the order of |new_results|. |
@@ -227,12 +227,10 @@ void Mixer::RemoveDuplicates(SortedResults* results) { |
std::set<std::string> id_set; |
for (const SortData& sort_data : *results) { |
- const std::string& id = sort_data.result->id(); |
- if (id_set.find(id) != id_set.end()) |
+ if (!id_set.insert(sort_data.result->id()).second) |
continue; |
- id_set.insert(id); |
- final.push_back(sort_data); |
+ final.emplace_back(sort_data); |
} |
results->swap(final); |