修改pods
This commit is contained in:
35
Pods/abseil/absl/strings/cord.cc
generated
35
Pods/abseil/absl/strings/cord.cc
generated
@@ -75,7 +75,7 @@ using ::absl::cord_internal::kMinFlatLength;
|
||||
using ::absl::cord_internal::kInlinedVectorSize;
|
||||
using ::absl::cord_internal::kMaxBytesToCopy;
|
||||
|
||||
static void DumpNode(absl::Nonnull<CordRep*> rep, bool include_data,
|
||||
static void DumpNode(absl::Nonnull<CordRep*> nonnull_rep, bool include_data,
|
||||
absl::Nonnull<std::ostream*> os, int indent = 0);
|
||||
static bool VerifyNode(absl::Nonnull<CordRep*> root,
|
||||
absl::Nonnull<CordRep*> start_node);
|
||||
@@ -425,8 +425,8 @@ Cord& Cord::operator=(absl::string_view src) {
|
||||
// we keep it here to make diffs easier.
|
||||
void Cord::InlineRep::AppendArray(absl::string_view src,
|
||||
MethodIdentifier method) {
|
||||
MaybeRemoveEmptyCrcNode();
|
||||
if (src.empty()) return; // memcpy(_, nullptr, 0) is undefined.
|
||||
MaybeRemoveEmptyCrcNode();
|
||||
|
||||
size_t appended = 0;
|
||||
CordRep* rep = tree();
|
||||
@@ -1062,6 +1062,15 @@ void CopyCordToString(const Cord& src, absl::Nonnull<std::string*> dst) {
|
||||
}
|
||||
}
|
||||
|
||||
void AppendCordToString(const Cord& src, absl::Nonnull<std::string*> dst) {
|
||||
const size_t cur_dst_size = dst->size();
|
||||
const size_t new_dst_size = cur_dst_size + src.size();
|
||||
absl::strings_internal::STLStringResizeUninitializedAmortized(dst,
|
||||
new_dst_size);
|
||||
char* append_ptr = &(*dst)[cur_dst_size];
|
||||
src.CopyToArrayImpl(append_ptr);
|
||||
}
|
||||
|
||||
void Cord::CopyToArraySlowPath(absl::Nonnull<char*> dst) const {
|
||||
assert(contents_.is_tree());
|
||||
absl::string_view fragment;
|
||||
@@ -1448,14 +1457,13 @@ absl::string_view Cord::FlattenSlowPath() {
|
||||
}
|
||||
}
|
||||
|
||||
static void DumpNode(absl::Nonnull<CordRep*> rep, bool include_data,
|
||||
static void DumpNode(absl::Nonnull<CordRep*> nonnull_rep, bool include_data,
|
||||
absl::Nonnull<std::ostream*> os, int indent) {
|
||||
CordRep* rep = nonnull_rep;
|
||||
const int kIndentStep = 1;
|
||||
absl::InlinedVector<CordRep*, kInlinedVectorSize> stack;
|
||||
absl::InlinedVector<int, kInlinedVectorSize> indents;
|
||||
for (;;) {
|
||||
*os << std::setw(3) << rep->refcount.Get();
|
||||
*os << " " << std::setw(7) << rep->length;
|
||||
*os << std::setw(3) << (rep == nullptr ? 0 : rep->refcount.Get());
|
||||
*os << " " << std::setw(7) << (rep == nullptr ? 0 : rep->length);
|
||||
*os << " [";
|
||||
if (include_data) *os << static_cast<void*>(rep);
|
||||
*os << "]";
|
||||
@@ -1477,26 +1485,23 @@ static void DumpNode(absl::Nonnull<CordRep*> rep, bool include_data,
|
||||
if (rep->IsExternal()) {
|
||||
*os << "EXTERNAL [";
|
||||
if (include_data)
|
||||
*os << absl::CEscape(std::string(rep->external()->base, rep->length));
|
||||
*os << absl::CEscape(
|
||||
absl::string_view(rep->external()->base, rep->length));
|
||||
*os << "]\n";
|
||||
} else if (rep->IsFlat()) {
|
||||
*os << "FLAT cap=" << rep->flat()->Capacity() << " [";
|
||||
if (include_data)
|
||||
*os << absl::CEscape(std::string(rep->flat()->Data(), rep->length));
|
||||
*os << absl::CEscape(
|
||||
absl::string_view(rep->flat()->Data(), rep->length));
|
||||
*os << "]\n";
|
||||
} else {
|
||||
CordRepBtree::Dump(rep, /*label=*/"", include_data, *os);
|
||||
}
|
||||
}
|
||||
if (leaf) {
|
||||
if (stack.empty()) break;
|
||||
rep = stack.back();
|
||||
stack.pop_back();
|
||||
indent = indents.back();
|
||||
indents.pop_back();
|
||||
break;
|
||||
}
|
||||
}
|
||||
ABSL_INTERNAL_CHECK(indents.empty(), "");
|
||||
}
|
||||
|
||||
static std::string ReportError(absl::Nonnull<CordRep*> root,
|
||||
|
||||
Reference in New Issue
Block a user