Commit 25a85cdd by Abseil Team Committed by Copybara-Service

Use absl::string_view by value rather than by const reference while iterating over collections.

PiperOrigin-RevId: 503088193
Change-Id: Ic1f239f3b0427e0fea1643ec0ce7baff45ad647d
parent 857325a9
...@@ -144,12 +144,12 @@ namespace strings_internal { ...@@ -144,12 +144,12 @@ namespace strings_internal {
std::string CatPieces(std::initializer_list<absl::string_view> pieces) { std::string CatPieces(std::initializer_list<absl::string_view> pieces) {
std::string result; std::string result;
size_t total_size = 0; size_t total_size = 0;
for (const absl::string_view& piece : pieces) total_size += piece.size(); for (absl::string_view piece : pieces) total_size += piece.size();
strings_internal::STLStringResizeUninitialized(&result, total_size); strings_internal::STLStringResizeUninitialized(&result, total_size);
char* const begin = &result[0]; char* const begin = &result[0];
char* out = begin; char* out = begin;
for (const absl::string_view& piece : pieces) { for (absl::string_view piece : pieces) {
const size_t this_size = piece.size(); const size_t this_size = piece.size();
if (this_size != 0) { if (this_size != 0) {
memcpy(out, piece.data(), this_size); memcpy(out, piece.data(), this_size);
...@@ -173,7 +173,7 @@ void AppendPieces(std::string* dest, ...@@ -173,7 +173,7 @@ void AppendPieces(std::string* dest,
std::initializer_list<absl::string_view> pieces) { std::initializer_list<absl::string_view> pieces) {
size_t old_size = dest->size(); size_t old_size = dest->size();
size_t total_size = old_size; size_t total_size = old_size;
for (const absl::string_view& piece : pieces) { for (absl::string_view piece : pieces) {
ASSERT_NO_OVERLAP(*dest, piece); ASSERT_NO_OVERLAP(*dest, piece);
total_size += piece.size(); total_size += piece.size();
} }
...@@ -181,7 +181,7 @@ void AppendPieces(std::string* dest, ...@@ -181,7 +181,7 @@ void AppendPieces(std::string* dest,
char* const begin = &(*dest)[0]; char* const begin = &(*dest)[0];
char* out = begin + old_size; char* out = begin + old_size;
for (const absl::string_view& piece : pieces) { for (absl::string_view piece : pieces) {
const size_t this_size = piece.size(); const size_t this_size = piece.size();
if (this_size != 0) { if (this_size != 0) {
memcpy(out, piece.data(), this_size); memcpy(out, piece.data(), this_size);
......
...@@ -369,7 +369,7 @@ TEST(SplitIterator, EqualityAsEndCondition) { ...@@ -369,7 +369,7 @@ TEST(SplitIterator, EqualityAsEndCondition) {
TEST(Splitter, RangeIterators) { TEST(Splitter, RangeIterators) {
auto splitter = absl::StrSplit("a,b,c", ','); auto splitter = absl::StrSplit("a,b,c", ',');
std::vector<absl::string_view> output; std::vector<absl::string_view> output;
for (const absl::string_view& p : splitter) { for (absl::string_view p : splitter) {
output.push_back(p); output.push_back(p);
} }
EXPECT_THAT(output, ElementsAre("a", "b", "c")); EXPECT_THAT(output, ElementsAre("a", "b", "c"));
......
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