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.
52 lines
1.7 KiB
52 lines
1.7 KiB
|
10 months ago
|
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
|
||
|
|
|