Use the new absl::StringResizeAndOverwrite() in absl::CordCopyToString()
PiperOrigin-RevId: 819855323
Change-Id: Ia26ec7437ab46f7e77a22f070c6727332fef7d7d
diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel
index bcf0c38..34c90ce 100644
--- a/absl/strings/BUILD.bazel
+++ b/absl/strings/BUILD.bazel
@@ -627,6 +627,7 @@
":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 764d5cd..da3a54a 100644
--- a/absl/strings/CMakeLists.txt
+++ b/absl/strings/CMakeLists.txt
@@ -1026,6 +1026,7 @@
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 a7e0994..91fcf91 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 @@
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;
+ });
}
}