Use the new absl::StringResizeAndOverwrite() in absl::CordCopyToString()

PiperOrigin-RevId: 819855323
Change-Id: Ia26ec7437ab46f7e77a22f070c6727332fef7d7d
This commit is contained in:
Derek Mauro
2025-10-15 11:58:03 -07:00
committed by Copybara-Service
parent 86372e7a21
commit b6f7ac3fe5
3 changed files with 8 additions and 2 deletions

View File

@@ -627,6 +627,7 @@ cc_library(
":cordz_update_scope",
":cordz_update_tracker",
":internal",
":resize_and_overwrite",
":strings",
"//absl/base:config",
"//absl/base:core_headers",

View File

@@ -1026,6 +1026,7 @@ absl_cc_library(
absl::raw_logging_internal
absl::span
absl::strings
absl::strings_resize_and_overwrite
absl::type_traits
absl::weakly_mixed_integer
PUBLIC

View File

@@ -52,6 +52,7 @@
#include "absl/strings/internal/cordz_update_tracker.h"
#include "absl/strings/internal/resize_uninitialized.h"
#include "absl/strings/match.h"
#include "absl/strings/resize_and_overwrite.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "absl/strings/strip.h"
@@ -1055,8 +1056,11 @@ void CopyCordToString(const Cord& src, std::string* absl_nonnull dst) {
if (!src.contents_.is_tree()) {
src.contents_.CopyTo(dst);
} else {
absl::strings_internal::STLStringResizeUninitialized(dst, src.size());
src.CopyToArraySlowPath(&(*dst)[0]);
StringResizeAndOverwrite(*dst, src.size(),
[&src](char* buf, size_t buf_size) {
src.CopyToArraySlowPath(buf);
return buf_size;
});
}
}