diff options
author | 2022-11-01 11:12:34 -0700 | |
---|---|---|
committer | 2022-11-01 11:13:10 -0700 | |
commit | 2b403ec754ec342311720467277c346e413e3438 (patch) | |
tree | 8fac980ef218fea582908f42ab77b2ec885548db /absl/strings/cord.cc | |
parent | d819278ab70ee5e59fa91d76a66abeaa106b95c9 (diff) |
Cord: Avoid leaking a node if SetExpectedChecksum() is called on an
empty cord twice in a row.
PiperOrigin-RevId: 485367641
Change-Id: I6605ff25acbcef7c40b68e15a8888076a2da63be
Diffstat (limited to 'absl/strings/cord.cc')
-rw-r--r-- | absl/strings/cord.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/absl/strings/cord.cc b/absl/strings/cord.cc index 57082c5f..92822c05 100644 --- a/absl/strings/cord.cc +++ b/absl/strings/cord.cc @@ -857,6 +857,7 @@ inline absl::string_view Cord::InlineRep::FindFlatStartPiece() const { void Cord::SetExpectedChecksum(uint32_t crc) { auto constexpr method = CordzUpdateTracker::kSetExpectedChecksum; if (empty()) { + contents_.MaybeRemoveEmptyCrcNode(); CordRep* rep = CordRepCrc::New(nullptr, crc); contents_.EmplaceTree(rep, method); } else if (!contents_.is_tree()) { |