From b6f7ac3fe54263aceba4041a6b39467b038510db Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Wed, 15 Oct 2025 11:58:03 -0700 Subject: [PATCH] Use the new absl::StringResizeAndOverwrite() in absl::CordCopyToString() PiperOrigin-RevId: 819855323 Change-Id: Ia26ec7437ab46f7e77a22f070c6727332fef7d7d --- absl/strings/BUILD.bazel | 1 + absl/strings/CMakeLists.txt | 1 + absl/strings/cord.cc | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel index bcf0c384..34c90ce6 100644 --- a/absl/strings/BUILD.bazel +++ b/absl/strings/BUILD.bazel @@ -627,6 +627,7 @@ cc_library( ":cordz_update_scope", ":cordz_update_tracker", ":internal", + ":resize_and_overwrite", ":strings", "//absl/base:config", "//absl/base:core_headers", diff --git a/absl/strings/CMakeLists.txt b/absl/strings/CMakeLists.txt index 764d5cd8..da3a54a7 100644 --- a/absl/strings/CMakeLists.txt +++ b/absl/strings/CMakeLists.txt @@ -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 diff --git a/absl/strings/cord.cc b/absl/strings/cord.cc index a7e09949..91fcf91c 100644 --- a/absl/strings/cord.cc +++ b/absl/strings/cord.cc @@ -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; + }); } }