| 301 | } |
| 302 | |
| 303 | inline void StrongUnref(const ReferenceCount& refcount) noexcept { |
| 304 | const auto count = |
| 305 | refcount.strong_refcount_.fetch_sub(1, std::memory_order_acq_rel); |
| 306 | ABSL_DCHECK_GT(count, 0); |
| 307 | ABSL_ASSUME(count > 0); |
| 308 | if (ABSL_PREDICT_FALSE(count == 1)) { |
| 309 | const_cast<ReferenceCount&>(refcount).Finalize(); |
| 310 | WeakUnref(refcount); |
| 311 | } |
| 312 | } |
| 313 | |
| 314 | inline void StrongUnref(const ReferenceCount* absl_nullable refcount) noexcept { |
| 315 | if (refcount != nullptr) { |