From 506e5cfa93e735bbbc7a54f0a13e52d96985cfb6 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 26 Feb 2023 21:14:26 +0100 Subject: src/world: collect empty chunks once per iteration --- src/world.cpp | 1 - src/world.hpp | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) (limited to 'src') 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 -- cgit v1.2.3