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;
+                             });
   }
 }