diff options
Diffstat (limited to 'absl/strings/cord.h')
-rw-r--r-- | absl/strings/cord.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/absl/strings/cord.h b/absl/strings/cord.h index 5c80a5cb..e758f1cd 100644 --- a/absl/strings/cord.h +++ b/absl/strings/cord.h @@ -1000,12 +1000,12 @@ constexpr Cord::InlineRep::InlineRep(cord_internal::InlineData data) : data_(data) {} inline Cord::InlineRep::InlineRep(const Cord::InlineRep& src) - : data_(src.data_) { - if (is_tree()) { - data_.clear_cordz_info(); - absl::cord_internal::CordRep::Ref(as_tree()); - CordzInfo::MaybeTrackCord(data_, src.data_, - CordzUpdateTracker::kConstructorCord); + : data_(InlineData::kDefaultInit) { + if (CordRep* tree = src.tree()) { + EmplaceTree(CordRep::Ref(tree), src.data_, + CordzUpdateTracker::kConstructorCord); + } else { + data_ = src.data_; } } |