From 1366f43ddd42ddf4016956bd4b33155b02d58b79 Mon Sep 17 00:00:00 2001 From: Ashnal Date: Sat, 26 Apr 2025 18:57:35 -0400 Subject: [PATCH] Move count to checkpoint manager --- src/mobj_list.hpp | 6 ------ src/objects/checkpoint.cpp | 7 +++++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/mobj_list.hpp b/src/mobj_list.hpp index af394e08a..751397053 100644 --- a/src/mobj_list.hpp +++ b/src/mobj_list.hpp @@ -37,7 +37,6 @@ struct MobjList { ptr->next(front()); front(ptr); - count_++; } void erase(T* node) @@ -46,7 +45,6 @@ struct MobjList { front(node->next()); node->next(nullptr); - count_--; return; } @@ -71,7 +69,6 @@ struct MobjList { prev->next(node->next()); node->next(nullptr); - count_--; break; } } @@ -88,12 +85,9 @@ struct MobjList auto begin() const { return view().begin(); } auto end() const { return view().end(); } - auto count() { return count_; } - private: void front(T* ptr) { Mobj::ManagedPtr {Head} = ptr; } auto view() const { return MobjListView(front(), [](T* node) { return node->next(); }); } - UINT32 count_ = 0; }; }; // namespace srb2 diff --git a/src/objects/checkpoint.cpp b/src/objects/checkpoint.cpp index 6060e89e7..338e3f3a1 100644 --- a/src/objects/checkpoint.cpp +++ b/src/objects/checkpoint.cpp @@ -497,6 +497,7 @@ struct CheckpointManager if (chk->linetag()) lines_.try_emplace(chk->linetag(), std::move(tagged_lines(chk->linetag()))); list_.push_front(chk); + count_ += 1; // Mobjlist can't have a count on it, so we keep it here } chk->gingerbread(); @@ -505,10 +506,11 @@ struct CheckpointManager void clear() { lines_.clear(); - list_.clear(); + list_.clear(); + count_ = 0; } - auto count() { return list_.count(); } + auto count() { return count_; } const srb2::Vector* lines_for(const Checkpoint* chk) const { @@ -517,6 +519,7 @@ struct CheckpointManager } private: + INT32 count_; srb2::MobjList list_; srb2::HashMap> lines_;