diff options
Diffstat (limited to '')
| -rw-r--r-- | src/common/lru_cache.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/common/lru_cache.h b/src/common/lru_cache.h index 048e9c3da..365488ba5 100644 --- a/src/common/lru_cache.h +++ b/src/common/lru_cache.h | |||
| @@ -29,11 +29,11 @@ public: | |||
| 29 | ~LeastRecentlyUsedCache() = default; | 29 | ~LeastRecentlyUsedCache() = default; |
| 30 | 30 | ||
| 31 | size_t Insert(ObjectType obj, TickType tick) { | 31 | size_t Insert(ObjectType obj, TickType tick) { |
| 32 | const auto new_id = build(); | 32 | const auto new_id = Build(); |
| 33 | auto& item = item_pool[new_id]; | 33 | auto& item = item_pool[new_id]; |
| 34 | item.obj = obj; | 34 | item.obj = obj; |
| 35 | item.tick = tick; | 35 | item.tick = tick; |
| 36 | attach(item); | 36 | Attach(item); |
| 37 | return new_id; | 37 | return new_id; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| @@ -46,13 +46,13 @@ public: | |||
| 46 | if (&item == last_item) { | 46 | if (&item == last_item) { |
| 47 | return; | 47 | return; |
| 48 | } | 48 | } |
| 49 | detach(item); | 49 | Detach(item); |
| 50 | attach(item); | 50 | Attach(item); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | void Free(size_t id) { | 53 | void Free(size_t id) { |
| 54 | auto& item = item_pool[id]; | 54 | auto& item = item_pool[id]; |
| 55 | detach(item); | 55 | Detach(item); |
| 56 | item.prev = nullptr; | 56 | item.prev = nullptr; |
| 57 | item.next = nullptr; | 57 | item.next = nullptr; |
| 58 | free_items.push_back(id); | 58 | free_items.push_back(id); |
| @@ -80,11 +80,10 @@ public: | |||
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | private: | 82 | private: |
| 83 | size_t build() { | 83 | size_t Build() { |
| 84 | if (free_items.empty()) { | 84 | if (free_items.empty()) { |
| 85 | const size_t item_id = item_pool.size(); | 85 | const size_t item_id = item_pool.size(); |
| 86 | item_pool.emplace_back(); | 86 | auto& item = item_pool.emplace_back(); |
| 87 | auto& item = item_pool[item_id]; | ||
| 88 | item.next = nullptr; | 87 | item.next = nullptr; |
| 89 | item.prev = nullptr; | 88 | item.prev = nullptr; |
| 90 | return item_id; | 89 | return item_id; |
| @@ -97,7 +96,7 @@ private: | |||
| 97 | return item_id; | 96 | return item_id; |
| 98 | } | 97 | } |
| 99 | 98 | ||
| 100 | void attach(Item& item) { | 99 | void Attach(Item& item) { |
| 101 | if (!first_item) { | 100 | if (!first_item) { |
| 102 | first_item = &item; | 101 | first_item = &item; |
| 103 | } | 102 | } |
| @@ -111,7 +110,7 @@ private: | |||
| 111 | } | 110 | } |
| 112 | } | 111 | } |
| 113 | 112 | ||
| 114 | void detach(Item& item) { | 113 | void Detach(Item& item) { |
| 115 | if (item.prev) { | 114 | if (item.prev) { |
| 116 | item.prev->next = item.next; | 115 | item.prev->next = item.next; |
| 117 | } | 116 | } |
| @@ -134,8 +133,8 @@ private: | |||
| 134 | 133 | ||
| 135 | std::deque<Item> item_pool; | 134 | std::deque<Item> item_pool; |
| 136 | std::deque<size_t> free_items; | 135 | std::deque<size_t> free_items; |
| 137 | Item* first_item; | 136 | Item* first_item{}; |
| 138 | Item* last_item; | 137 | Item* last_item{}; |
| 139 | }; | 138 | }; |
| 140 | 139 | ||
| 141 | } // namespace Common | 140 | } // namespace Common |