From 0b4548bed3677e2fe93939e1898ed1a3d3eea6aa Mon Sep 17 00:00:00 2001 From: ThePhD Date: Wed, 21 Mar 2018 17:52:28 -0400 Subject: [PATCH] allow pointers to be used with property defines --- single/sol/sol.hpp | 11 ++++++----- single/sol/sol_forward.hpp | 4 ++-- sol/call.hpp | 7 ++++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/single/sol/sol.hpp b/single/sol/sol.hpp index e8883be5..dd8ba105 100644 --- a/single/sol/sol.hpp +++ b/single/sol/sol.hpp @@ -20,8 +20,8 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2018-03-19 04:19:45.625468 UTC -// This header was generated with sol v2.19.5 (revision f50d8e2) +// Generated 2018-03-21 21:52:05.424739 UTC +// This header was generated with sol v2.19.5 (revision b447c3d) // https://github.com/ThePhD/sol2 #ifndef SOL_SINGLE_INCLUDE_HPP @@ -12985,6 +12985,7 @@ namespace sol { static int self_call(std::false_type, lua_State* L, F&& f) { typedef meta::pop_front_type_t args_list; typedef T Ta; + typedef std::remove_pointer_t Oa; #ifdef SOL_SAFE_USERTYPE auto maybeo = stack::check_get(L, 1); if (!maybeo || maybeo.value() == nullptr) { @@ -12993,13 +12994,13 @@ namespace sol { } return luaL_error(L, "sol: 'self' argument is lua_nil (pass 'self' as first argument)"); } - object_type* o = static_cast(maybeo.value()); + Oa* o = static_cast(maybeo.value()); #else - object_type* o = static_cast(stack::get>(L, 1)); + Oa* o = static_cast(stack::get>(L, 1)); #endif // Safety typedef typename wrap::returns_list returns_list; typedef typename wrap::caller caller; - return stack::call_into_lua(returns_list(), args_list(), L, boost + (is_variable ? 3 : 2), caller(), f, *o); + return stack::call_into_lua(returns_list(), args_list(), L, boost + (is_variable ? 3 : 2), caller(), f, detail::implicit_wrapper(*o)); } template diff --git a/single/sol/sol_forward.hpp b/single/sol/sol_forward.hpp index b5c36b7a..b9be88da 100644 --- a/single/sol/sol_forward.hpp +++ b/single/sol/sol_forward.hpp @@ -20,8 +20,8 @@ // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // This file was generated with a script. -// Generated 2018-03-19 04:19:45.849597 UTC -// This header was generated with sol v2.19.5 (revision f50d8e2) +// Generated 2018-03-21 21:52:05.735306 UTC +// This header was generated with sol v2.19.5 (revision b447c3d) // https://github.com/ThePhD/sol2 #ifndef SOL_SINGLE_INCLUDE_FORWARD_HPP diff --git a/sol/call.hpp b/sol/call.hpp index cca872ba..f8eefbf1 100644 --- a/sol/call.hpp +++ b/sol/call.hpp @@ -641,6 +641,7 @@ namespace sol { static int self_call(std::false_type, lua_State* L, F&& f) { typedef meta::pop_front_type_t args_list; typedef T Ta; + typedef std::remove_pointer_t Oa; #ifdef SOL_SAFE_USERTYPE auto maybeo = stack::check_get(L, 1); if (!maybeo || maybeo.value() == nullptr) { @@ -649,13 +650,13 @@ namespace sol { } return luaL_error(L, "sol: 'self' argument is lua_nil (pass 'self' as first argument)"); } - object_type* o = static_cast(maybeo.value()); + Oa* o = static_cast(maybeo.value()); #else - object_type* o = static_cast(stack::get>(L, 1)); + Oa* o = static_cast(stack::get>(L, 1)); #endif // Safety typedef typename wrap::returns_list returns_list; typedef typename wrap::caller caller; - return stack::call_into_lua(returns_list(), args_list(), L, boost + (is_variable ? 3 : 2), caller(), f, *o); + return stack::call_into_lua(returns_list(), args_list(), L, boost + (is_variable ? 3 : 2), caller(), f, detail::implicit_wrapper(*o)); } template