From 2be8c86855ea7d5f06a446446dc4d5d295fb8e08 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 3 Aug 2022 22:48:18 +0300 Subject: [PATCH] Optimize size() and empty() for WaitFreeVector. --- tdutils/td/utils/WaitFreeVector.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tdutils/td/utils/WaitFreeVector.h b/tdutils/td/utils/WaitFreeVector.h index 18e1b513b..dc57fb1e2 100644 --- a/tdutils/td/utils/WaitFreeVector.h +++ b/tdutils/td/utils/WaitFreeVector.h @@ -53,15 +53,14 @@ class WaitFreeVector { } size_t size() const { - size_t result = 0; - for (auto &storage : storage_) { - result += storage.size(); + if (storage_.empty()) { + return 0; } - return result; + return (storage_.size() - 1) * MAX_VECTOR_SIZE + storage_.back().size(); } bool empty() const { - return storage_.empty() || storage_[0].empty(); + return storage_.empty(); } };