aboutsummaryrefslogtreecommitdiff
path: root/absl/strings/cord_analysis.cc
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2023-09-22 12:54:00 -0700
committerCopybara-Service <copybara-worker@google.com>2023-09-22 12:54:55 -0700
commit1ad22093098d0b577ea37603f8b4a6d4b2ea3e3a (patch)
tree486841d614858372d2144297147ec8b556193f2f /absl/strings/cord_analysis.cc
parent90e8f6f7a887ccba1bc6c8742e4ff94a47e49ea0 (diff)
downloadabseil-1ad22093098d0b577ea37603f8b4a6d4b2ea3e3a.tar.gz
abseil-1ad22093098d0b577ea37603f8b4a6d4b2ea3e3a.tar.bz2
abseil-1ad22093098d0b577ea37603f8b4a6d4b2ea3e3a.zip
Fix a crash when calling `EstimatedMemoryUsage()` on an empty checksummed `absl::Cord`.
PiperOrigin-RevId: 567695227 Change-Id: I13eb8a1872d2fe703b5f3b9bc8df7fec4381fb55
Diffstat (limited to 'absl/strings/cord_analysis.cc')
-rw-r--r--absl/strings/cord_analysis.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/absl/strings/cord_analysis.cc b/absl/strings/cord_analysis.cc
index b0f1a3e6..5418a325 100644
--- a/absl/strings/cord_analysis.cc
+++ b/absl/strings/cord_analysis.cc
@@ -157,6 +157,9 @@ size_t GetEstimatedUsage(const CordRep* rep) {
// Consume the top level CRC node if present.
if (repref.rep->tag == CRC) {
raw_usage.Add(sizeof(CordRepCrc), repref);
+ if (repref.rep->crc()->child == nullptr) {
+ return static_cast<size_t>(raw_usage.total);
+ }
repref = repref.Child(repref.rep->crc()->child);
}