mirror of
https://github.com/abseil/abseil-cpp.git
synced 2026-06-04 12:07:05 +08:00
Use the new absl::StringResizeAndOverwrite() in absl::CordCopyToString()
PiperOrigin-RevId: 819855323 Change-Id: Ia26ec7437ab46f7e77a22f070c6727332fef7d7d
This commit is contained in:
committed by
Copybara-Service
parent
86372e7a21
commit
b6f7ac3fe5
@@ -627,6 +627,7 @@ cc_library(
|
||||
":cordz_update_scope",
|
||||
":cordz_update_tracker",
|
||||
":internal",
|
||||
":resize_and_overwrite",
|
||||
":strings",
|
||||
"//absl/base:config",
|
||||
"//absl/base:core_headers",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user