From f4c338c63f3456a8eccd56c35e233843687d55be Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 29 Mar 2019 00:43:25 +0800 Subject: *thread --- source/3rd-party/Luax/luax_class.inl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/3rd-party/Luax/luax_class.inl') diff --git a/source/3rd-party/Luax/luax_class.inl b/source/3rd-party/Luax/luax_class.inl index 7ee3de9..d1c8c4b 100644 --- a/source/3rd-party/Luax/luax_class.inl +++ b/source/3rd-party/Luax/luax_class.inl @@ -1,7 +1,7 @@ namespace Luax { - //---------------------------------------------------------------------------------------------------------------- + //--------------------------------------------------------------------------------// // 接口 /// @@ -17,7 +17,7 @@ namespace Luax return 1; } - //---------------------------------------------------------------------------------------------------------------- + //--------------------------------------------------------------------------------// /// /// 注册工厂和单例共有的类成员 @@ -205,8 +205,8 @@ namespace Luax assert(!T::IsLuaxClassSingleton()); assert(!mUserdata); - // 创建userdata并留在栈顶 - state.PushPtrUserdata(this); + // 创建userdata并留在栈顶,注意地址要转换为T*,直接用this可能会导致多重继承的类丧失多态。 + state.PushPtrUserdata(static_cast(this)); lua_newtable(state); // ref table,无法在lua处访问,用来管理C对象的生命周期 lua_newtable(state); // member table,lua中创建的对象成员都保存在这里 @@ -315,7 +315,7 @@ namespace Luax } } - //-------------------------------------------------------------------------------------------------------------- + //--------------------------------------------------------------------------------// /// /// 释放工厂创建的实例 -- cgit v1.1-26-g67d0