diff --git a/system_wrappers/include/field_trial.h b/system_wrappers/include/field_trial.h index 48bad41d5c..5256142b70 100644 --- a/system_wrappers/include/field_trial.h +++ b/system_wrappers/include/field_trial.h @@ -13,6 +13,8 @@ #include +#include "absl/strings/string_view.h" + // Field trials allow webrtc clients (such as Chrome) to turn on feature code // in binaries out in the field and gather information with that. // @@ -61,7 +63,7 @@ namespace field_trial { // if the trial does not exists. // // Note: To keep things tidy append all the trial names with WebRTC. -std::string FindFullName(const std::string& name); +std::string FindFullName(absl::string_view name); // Convenience method, returns true iff FindFullName(name) return a string that // starts with "Enabled". diff --git a/system_wrappers/source/field_trial.cc b/system_wrappers/source/field_trial.cc index 8e447907d7..1eac3ddaa2 100644 --- a/system_wrappers/source/field_trial.cc +++ b/system_wrappers/source/field_trial.cc @@ -102,11 +102,11 @@ std::string MergeFieldTrialsStrings(const char* first, const char* second) { } #ifndef WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT -std::string FindFullName(const std::string& name) { +std::string FindFullName(absl::string_view name) { if (trials_init_string == NULL) return std::string(); - std::string trials_string(trials_init_string); + absl::string_view trials_string(trials_init_string); if (trials_string.empty()) return std::string(); @@ -122,14 +122,14 @@ std::string FindFullName(const std::string& name) { if (field_value_end == trials_string.npos || field_value_end == field_name_end + 1) break; - std::string field_name(trials_string, next_item, - field_name_end - next_item); - std::string field_value(trials_string, field_name_end + 1, - field_value_end - field_name_end - 1); + absl::string_view field_name = + trials_string.substr(next_item, field_name_end - next_item); + absl::string_view field_value = trials_string.substr( + field_name_end + 1, field_value_end - field_name_end - 1); next_item = field_value_end + 1; if (name == field_name) - return field_value; + return std::string(field_value); } return std::string(); }