diff options
Diffstat (limited to 'Source/3rdParty/Luax/luax_state.inl')
-rw-r--r-- | Source/3rdParty/Luax/luax_state.inl | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/Source/3rdParty/Luax/luax_state.inl b/Source/3rdParty/Luax/luax_state.inl index c9a95f6..63f849f 100644 --- a/Source/3rdParty/Luax/luax_state.inl +++ b/Source/3rdParty/Luax/luax_state.inl @@ -2,8 +2,7 @@ namespace Luax { /// - /// עṤΪעinterface tableclass tabletype nameΪƿռϡעβԪȵNew - /// õʱŻᡣ + /// עṤעclass tabletype nameΪƿռϡעβԪȵNewõʱŻᡣ /// template<typename T> void LuaxState::RegisterFactory() @@ -14,20 +13,7 @@ namespace Luax int top = lua_gettop(L); // namespace table assert(lua_istable(L, top)); - // 1) interface table - lua_newtable(L); - LuaxClass<T>::RegisterLuaxInterface(state); - T::RegisterLuaxInterface(state); - - // interface table[__index] = interface table - lua_pushvalue(L, -1); - lua_setfield(L, -2, "__index"); - - LuaxClass<T>::SetLuaxInterfaceTableRef(state, -1); - - lua_settop(L, top); - - // 2) class table + // class table lua_newtable(L); LuaxClass<T>::RegisterLuaxClass(state); LuaxClass<T>::RegisterLuaxFactoryClass(state); @@ -45,14 +31,12 @@ namespace Luax // .Extend() lua_pushvalue(state, -1); // class table - LuaxClass<T>::PushLuaxInterfaceTable(state); // interface table - lua_pushcclosure(state, LuaxClass<T>::l_ExtendFactory, 2); + lua_pushcclosure(state, LuaxClass<T>::l_ExtendFactory, 1); lua_setfield(state, -2, "Extend"); - // .GetInterfaceTable() - LuaxClass<T>::PushLuaxInterfaceTable(state); // interface table - lua_pushcclosure(state, LuaxClass<T>::l_GetInterfaceTable, 1); - lua_setfield(state, -2, "GetInterfaceTable"); + // class["__index"] = class + lua_pushvalue(state, -1); // class table + lua_setfield(state, -2, "__index"); LuaxClass<T>::SetLuaxClassTableRef(state, -1); @@ -67,7 +51,7 @@ namespace Luax } /// - /// Singletonֻһclass tableûinterface table + /// Singleton /// template<typename T> void LuaxState::RegisterSingleton() |