From 04c881683d6dabb1ba92fffd0e25c389dc6cb6fa Mon Sep 17 00:00:00 2001 From: Ali Tofigh Date: Mon, 21 Mar 2022 14:47:35 +0100 Subject: [PATCH] Switch to absl::string_view in field_trial::FindFullName() Bug: webrtc:13579 Change-Id: Iaaea42957afb4af66ad5eea6447e75dddc13b5ea Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256263 Reviewed-by: Niels Moller Commit-Queue: Ali Tofigh Cr-Commit-Position: refs/heads/main@{#36288} --- system_wrappers/include/field_trial.h | 4 +++- system_wrappers/source/field_trial.cc | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) 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(); }