From 09635e063c007c4bda684ee21abb55c7470ee0e0 Mon Sep 17 00:00:00 2001 From: Benoit Germain Date: Mon, 3 Jun 2024 16:53:50 +0200 Subject: Code boyscouting --- src/deep.h | 3 ++- src/uniquekey.h | 11 +++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/deep.h b/src/deep.h index e15f07b..b39a87f 100644 --- a/src/deep.h +++ b/src/deep.h @@ -22,6 +22,7 @@ extern "C" // forwards enum class LookupMode; +class DeepFactory; class Universe; // ################################################################################################# @@ -35,7 +36,7 @@ struct DeepPrelude { UniqueKey const magic{ kDeepVersion }; // when stored in a keeper state, the full userdata doesn't have a metatable, so we need direct access to the factory - class DeepFactory& factory; + DeepFactory& factory; // data is destroyed when refcount is 0 std::atomic refcount{ 0 }; diff --git a/src/uniquekey.h b/src/uniquekey.h index 7e86cbe..5ccecc5 100644 --- a/src/uniquekey.h +++ b/src/uniquekey.h @@ -9,10 +9,8 @@ class UniqueKey { - protected: - uintptr_t const storage{ 0 }; - public: + uintptr_t const storage{ 0 }; std::string_view debugName{}; // --------------------------------------------------------------------------------------------- @@ -27,10 +25,11 @@ class UniqueKey } // --------------------------------------------------------------------------------------------- constexpr UniqueKey(UniqueKey const& rhs_) = default; + // debugName is irrelevant in comparisons + inline constexpr std::weak_ordering operator<=>(UniqueKey const& rhs_) const { return storage <=> rhs_.storage; } + inline constexpr auto operator==(UniqueKey const& rhs_) const { return storage == rhs_.storage; } // --------------------------------------------------------------------------------------------- - constexpr std::strong_ordering operator<=>(UniqueKey const& rhs_) const = default; - // --------------------------------------------------------------------------------------------- - bool equals(lua_State* const L_, int i_) const + bool equals(lua_State* const L_, int const i_) const { return lua_touserdata(L_, i_) == std::bit_cast(storage); } -- cgit v1.2.3-55-g6feb