You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
51 lines
1.7 KiB
From ee5af5e0564d1dad7d37e9849404b5be0849142f Mon Sep 17 00:00:00 2001 |
|
From: Evil Eye <malusluminis@hotmail.com> |
|
Date: Thu, 10 Jul 2025 17:53:18 +0200 |
|
Subject: [PATCH 6/9] Overload stateless_reference_equals and |
|
stateless_reference_hash to prevent implicit conversion of stack_reference to |
|
stateless_reference |
|
|
|
--- |
|
include/sol/reference.hpp | 12 ++++++++++++ |
|
1 file changed, 12 insertions(+) |
|
|
|
diff --git include/sol/reference.hpp include/sol/reference.hpp |
|
index c7781552..e7be661a 100644 |
|
--- include/sol/reference.hpp |
|
+++ include/sol/reference.hpp |
|
@@ -828,6 +828,8 @@ namespace sol { |
|
stateless_reference_equals(lua_State* L_) noexcept : stateless_stack_reference_equals(L_) { |
|
} |
|
|
|
+ using stateless_stack_reference_equals::operator(); |
|
+ |
|
bool operator()(const lua_nil_t& lhs, const stateless_reference& rhs) const noexcept { |
|
return rhs.equals(lua_state(), lhs); |
|
} |
|
@@ -839,6 +841,14 @@ namespace sol { |
|
bool operator()(const stateless_reference& lhs, const stateless_reference& rhs) const noexcept { |
|
return lhs.equals(lua_state(), rhs); |
|
} |
|
+ |
|
+ bool operator()(const stateless_stack_reference& lhs, const stateless_reference& rhs) const noexcept { |
|
+ return rhs.equals(lua_state(), lhs); |
|
+ } |
|
+ |
|
+ bool operator()(const stateless_reference& lhs, const stateless_stack_reference& rhs) const noexcept { |
|
+ return lhs.equals(lua_state(), rhs); |
|
+ } |
|
}; |
|
|
|
struct reference_equals : public stack_reference_equals { |
|
@@ -878,6 +888,8 @@ namespace sol { |
|
stateless_reference_hash(lua_State* L_) noexcept : stateless_stack_reference_hash(L_) { |
|
} |
|
|
|
+ using stateless_stack_reference_hash::operator(); |
|
+ |
|
result_type operator()(const stateless_reference& lhs) const noexcept { |
|
std::hash<const void*> h; |
|
return h(lhs.pointer(lua_state())); |
|
-- |
|
2.48.1 |
|
|
|
|