diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-26 21:14:26 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-02-26 21:14:26 +0100 |
commit | 506e5cfa93e735bbbc7a54f0a13e52d96985cfb6 (patch) | |
tree | c294522e3ebabe48f253c1973830be1a4ad3533f /src | |
parent | 988bf5d0368cb16846c02ea1482ea7b051ab97cb (diff) |
src/world: collect empty chunks once per iteration
Diffstat (limited to 'src')
-rw-r--r-- | src/world.cpp | 1 | ||||
-rw-r--r-- | src/world.hpp | 3 |
2 files changed, 1 insertions, 3 deletions
diff --git a/src/world.cpp b/src/world.cpp index a95cdd21..20805905 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -14,7 +14,6 @@ world::world(std::size_t capacity) : _chunks{capacity, hasher} chunk& world::operator[](chunk_coords coord) noexcept { - maybe_collect(); auto& [c, coord2] = _last_chunk; if (coord != coord2) c = &_chunks.try_emplace(coord).first->second; diff --git a/src/world.hpp b/src/world.hpp index b95baf62..3bfcf702 100644 --- a/src/world.hpp +++ b/src/world.hpp @@ -18,8 +18,6 @@ private: chunk_coords pos = invalid_coords; } _last_chunk; - void maybe_collect(); - static constexpr std::size_t initial_capacity = 64, collect_every = 64; static constexpr float max_load_factor = .5; static constexpr auto hasher = [](chunk_coords c) constexpr -> std::size_t { @@ -43,6 +41,7 @@ public: bool contains(chunk_coords c) const noexcept; void clear(); void collect(bool force = false); + void maybe_collect(); std::size_t size() const noexcept { return _chunks.size(); } [[deprecated]] const auto& chunks() const noexcept { return _chunks; } // only for serialization |