diff options
Diffstat (limited to 'Source/3rdParty/Luax/luax_state.inl')
-rw-r--r-- | Source/3rdParty/Luax/luax_state.inl | 11 |
1 files changed, 7 insertions, 4 deletions
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<T>::RegisterLuaxClass(state); - LuaxNativeClass<T>::RegisterLuaxFactoryClass(state); + LuaxNativeClass<T>::RegisterLuaxSingletonClass(state); T::RegisterLuaxClass(state); LuaxNativeClass<T>::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<T>::l_ExtendSingleton, 1); + lua_setfield(state, -2, "Extend"); cc8* type = T::GetLuaxSingletonName(); SetField(top, type); |