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

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