Commit dd7a886d authored by Alexei Svitkine's avatar Alexei Svitkine Committed by Chromium LUCI CQ

Optimize a couple more code paths in feature params look up code.

Makes GetFieldTrialParamValueByFeature() not do an extra field
trial look up by making it match the GetFieldTrialParamValue()
code path.

Also merges GetFieldTrialParamsWithoutFallback()'s contains and
map access into a single lookup, rather than two.

Bug: 1163921
Change-Id: I602e0ee47f679b143ee1666923b53a2760cae6c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2617470
Auto-Submit: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842188}
parent d322167b
...@@ -60,10 +60,11 @@ bool FieldTrialParamAssociator::GetFieldTrialParamsWithoutFallback( ...@@ -60,10 +60,11 @@ bool FieldTrialParamAssociator::GetFieldTrialParamsWithoutFallback(
AutoLock scoped_lock(lock_); AutoLock scoped_lock(lock_);
const FieldTrialRefKey key(trial_name, group_name); const FieldTrialRefKey key(trial_name, group_name);
if (!Contains(field_trial_params_, key)) auto it = field_trial_params_.find(key);
if (it == field_trial_params_.end())
return false; return false;
*params = field_trial_params_[key]; *params = it->second;
return true; return true;
} }
......
...@@ -114,14 +114,13 @@ std::string GetFieldTrialParamValue(const std::string& trial_name, ...@@ -114,14 +114,13 @@ std::string GetFieldTrialParamValue(const std::string& trial_name,
std::string GetFieldTrialParamValueByFeature(const Feature& feature, std::string GetFieldTrialParamValueByFeature(const Feature& feature,
const std::string& param_name) { const std::string& param_name) {
if (!FeatureList::IsEnabled(feature)) FieldTrialParams params;
return std::string(); if (GetFieldTrialParamsByFeature(feature, &params)) {
auto it = params.find(param_name);
FieldTrial* trial = FeatureList::GetFieldTrial(feature); if (it != params.end())
if (!trial) return it->second;
return std::string(); }
return std::string();
return GetFieldTrialParamValue(trial->trial_name(), param_name);
} }
int GetFieldTrialParamByFeatureAsInt(const Feature& feature, int GetFieldTrialParamByFeatureAsInt(const Feature& feature,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment