diff options
author | Benjamin Barenblat <bbaren@google.com> | 2022-07-12 21:47:19 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2022-07-12 21:47:19 -0400 |
commit | d055841ab4147dac20d5c46d04ca3a2fb13748b7 (patch) | |
tree | 15a01389c86f10a8844ff2a86bddf46640d065e8 /absl/strings/internal/str_join_internal.h | |
parent | 2d23a3e16abfcf8f22ba850d67e972cc77e98874 (diff) | |
parent | 273292d1cfc0a94a65082ee350509af1d113344d (diff) | |
download | abseil-d055841ab4147dac20d5c46d04ca3a2fb13748b7.tar.gz abseil-d055841ab4147dac20d5c46d04ca3a2fb13748b7.tar.bz2 abseil-d055841ab4147dac20d5c46d04ca3a2fb13748b7.zip |
Merge new upstream LTS 20220623.0
Diffstat (limited to 'absl/strings/internal/str_join_internal.h')
-rw-r--r-- | absl/strings/internal/str_join_internal.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/absl/strings/internal/str_join_internal.h b/absl/strings/internal/str_join_internal.h index 31dbf672..d97d5033 100644 --- a/absl/strings/internal/str_join_internal.h +++ b/absl/strings/internal/str_join_internal.h @@ -229,10 +229,11 @@ std::string JoinAlgorithm(Iterator start, Iterator end, absl::string_view s, std::string result; if (start != end) { // Sums size - size_t result_size = start->size(); + auto&& start_value = *start; + size_t result_size = start_value.size(); for (Iterator it = start; ++it != end;) { result_size += s.size(); - result_size += it->size(); + result_size += (*it).size(); } if (result_size > 0) { @@ -240,13 +241,15 @@ std::string JoinAlgorithm(Iterator start, Iterator end, absl::string_view s, // Joins strings char* result_buf = &*result.begin(); - memcpy(result_buf, start->data(), start->size()); - result_buf += start->size(); + + memcpy(result_buf, start_value.data(), start_value.size()); + result_buf += start_value.size(); for (Iterator it = start; ++it != end;) { memcpy(result_buf, s.data(), s.size()); result_buf += s.size(); - memcpy(result_buf, it->data(), it->size()); - result_buf += it->size(); + auto&& value = *it; + memcpy(result_buf, value.data(), value.size()); + result_buf += value.size(); } } } |