From ad2805aa839892589c13a615730da52f6e474709 Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 17 Mar 2019 10:49:50 +0800 Subject: *luax --- Source/3rdParty/Luax/luax_state.inl | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 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 c9a95f6..63f849f 100644 --- a/Source/3rdParty/Luax/luax_state.inl +++ b/Source/3rdParty/Luax/luax_state.inl @@ -2,8 +2,7 @@ namespace Luax { /// - /// 注册工厂,分为注册interface table和class table,以type name为键设置在名称空间上。在注册阶段不会设置元表,等到New方 - /// 法调用的时候才会。 + /// 注册工厂,注册class table,以type name为键设置在名称空间上。在注册阶段不会设置元表,等到New方法调用的时候才会。 /// template 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::RegisterLuaxInterface(state); - T::RegisterLuaxInterface(state); - - // interface table[__index] = interface table - lua_pushvalue(L, -1); - lua_setfield(L, -2, "__index"); - - LuaxClass::SetLuaxInterfaceTableRef(state, -1); - - lua_settop(L, top); - - // 2) class table + // class table lua_newtable(L); LuaxClass::RegisterLuaxClass(state); LuaxClass::RegisterLuaxFactoryClass(state); @@ -45,14 +31,12 @@ namespace Luax // .Extend() lua_pushvalue(state, -1); // class table - LuaxClass::PushLuaxInterfaceTable(state); // interface table - lua_pushcclosure(state, LuaxClass::l_ExtendFactory, 2); + lua_pushcclosure(state, LuaxClass::l_ExtendFactory, 1); lua_setfield(state, -2, "Extend"); - // .GetInterfaceTable() - LuaxClass::PushLuaxInterfaceTable(state); // interface table - lua_pushcclosure(state, LuaxClass::l_GetInterfaceTable, 1); - lua_setfield(state, -2, "GetInterfaceTable"); + // class["__index"] = class + lua_pushvalue(state, -1); // class table + lua_setfield(state, -2, "__index"); LuaxClass::SetLuaxClassTableRef(state, -1); @@ -67,7 +51,7 @@ namespace Luax } /// - /// Singleton只有一个class table,没有interface table。 + /// Singleton /// template void LuaxState::RegisterSingleton() -- cgit v1.1-26-g67d0