From 31b39982c5ead87da1727bc1f561b945e4d1e5fb Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Thu, 31 Jul 2025 22:06:52 -0500 Subject: [PATCH] [keel] Fix AssetRef to call incRef on initial creation of ref, not just copy --- src/olympic/keel/include/keel/assetmanager.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/olympic/keel/include/keel/assetmanager.hpp b/src/olympic/keel/include/keel/assetmanager.hpp index 62cda92a..2719e455 100644 --- a/src/olympic/keel/include/keel/assetmanager.hpp +++ b/src/olympic/keel/include/keel/assetmanager.hpp @@ -64,11 +64,13 @@ class AssetContainer { protected: constexpr void incRefs() const noexcept { + oxAssert(m_references < ox::MaxValue, "reference count exceeds maximum"); ++m_references; } constexpr void decRefs() const noexcept { --m_references; + oxAssert(m_references >= 0, "negative references"); } [[nodiscard]] @@ -162,6 +164,7 @@ template constexpr AssetRef::AssetRef(AssetContainer const*c) noexcept: m_ctr(c) { if (m_ctr) { m_ctr->updated.connect(this, &AssetRef::emitUpdated); + m_ctr->incRefs(); } }