From 34fe8e795aaeed3a9f50d895d1cadd8f124c9605 Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 17 Mar 2019 20:36:39 +0800 Subject: *luax --- Source/3rdParty/Luax/luax_state.inl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'Source/3rdParty/Luax/luax_state.inl') diff --git a/Source/3rdParty/Luax/luax_state.inl b/Source/3rdParty/Luax/luax_state.inl index 63245bb..712eb1d 100644 --- a/Source/3rdParty/Luax/luax_state.inl +++ b/Source/3rdParty/Luax/luax_state.inl @@ -26,6 +26,7 @@ namespace Luax Pop(); _assertmethod(-1, "New"); + //_assertmethod(-1, "__gc"); #undef _assertmethod @@ -65,16 +66,18 @@ namespace Luax // class table. lua_newtable(L); LuaxNativeClass::RegisterLuaxClass(state); - LuaxNativeClass::RegisterLuaxFactoryClass(state); + LuaxNativeClass::RegisterLuaxSingletonClass(state); T::RegisterLuaxClass(state); LuaxNativeClass::SetLuaxClassTableRef(state, -1); - // class table的__index和__newindex指向自身 lua_pushvalue(state, -1); lua_setfield(state, -2, "__index"); - lua_pushvalue(state, -1); - lua_setfield(state, -2, "__newindex"); + + // .Extend() + lua_pushvalue(state, -1); // class table + lua_pushcclosure(state, LuaxNativeClass::l_ExtendSingleton, 1); + lua_setfield(state, -2, "Extend"); cc8* type = T::GetLuaxSingletonName(); SetField(top, type); -- cgit v1.1-26-g67d0