From 1497dccd63a84b7ee2b229b1ad9c5c02718f2a78 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 19 Mar 2019 23:06:27 +0800 Subject: *rename --- Source/3rdParty/Luax/luax_state.inl | 140 ------------------------------------ 1 file changed, 140 deletions(-) delete mode 100644 Source/3rdParty/Luax/luax_state.inl (limited to 'Source/3rdParty/Luax/luax_state.inl') diff --git a/Source/3rdParty/Luax/luax_state.inl b/Source/3rdParty/Luax/luax_state.inl deleted file mode 100644 index 12fa21f..0000000 --- a/Source/3rdParty/Luax/luax_state.inl +++ /dev/null @@ -1,140 +0,0 @@ -namespace Luax -{ - - /// - /// 注册工厂,注册class table,以type name为键设置在名称空间上。在注册阶段不会设置元表,等到New方法调用的时候才会。 - /// - template - void LuaxState::RegisterFactory() - { - lua_State* L = mState; - LuaxState& state = *this; - - int top = lua_gettop(L); // namespace table - assert(lua_istable(L, top)); - - // class table - lua_newtable(L); - LuaxNativeClass::RegisterLuaxClass(state); - LuaxNativeClass::RegisterLuaxFactoryClass(state); - T::RegisterLuaxClass(state); - - // 检测T里面是否没有注册必须的方法 -#define _assertmethod(I, NAME) \ - GetField(I, NAME); \ - assert(IsType(-1, LUA_TFUNCTION)); \ - Pop(); - - _assertmethod(-1, "New"); - //_assertmethod(-1, "__gc"); - -#undef _assertmethod - -#ifdef LUAX_ENABLE_NATIVE_EXTEND - // .Extend() - lua_pushvalue(state, -1); // class table - lua_pushcclosure(state, LuaxNativeClass::l_ExtendFactory, 1); - lua_setfield(state, -2, "Extend"); -#endif - - // class["__index"] = class - lua_pushvalue(state, -1); // class table - lua_setfield(state, -2, "__index"); - - LuaxNativeClass::SetLuaxClassTableRef(state, -1); - - cc8* type = T::GetLuaxFactoryName(); - SetField(top, type); - - // reset top - lua_settop(L, top); - - // 后处理 - T::RegisterLuaxPostprocess(state); - } - - /// - /// Singleton - /// - template - void LuaxState::RegisterSingleton() - { - lua_State* L = mState; - LuaxState& state = *this; - - int top = lua_gettop(L); // namespace table - assert(lua_istable(L, top)); - - // class table. - lua_newtable(L); - LuaxNativeClass::RegisterLuaxClass(state); - LuaxNativeClass::RegisterLuaxSingletonClass(state); - T::RegisterLuaxClass(state); - - LuaxNativeClass::SetLuaxClassTableRef(state, -1); - - lua_pushvalue(state, -1); - lua_setfield(state, -2, "__index"); - -#ifdef LUAX_ENABLE_NATIVE_EXTEND - // .Extend() - lua_pushvalue(state, -1); // class table - lua_pushcclosure(state, LuaxNativeClass::l_ExtendSingleton, 1); - lua_setfield(state, -2, "Extend"); -#endif - - cc8* type = T::GetLuaxSingletonName(); - SetField(top, type); - - // reset top - lua_settop(L, top); - - // 后处理 - T::RegisterLuaxPostprocess(state); - } - - template - void LuaxState::SetField(int idx, cc8* key, T value) - { - if (IsTableOrUserdata(idx)) - { - idx = AbsIndex(idx); - this->Push(value); - lua_setfield(mState, idx, key); - } - } - - template - T LuaxState::GetField(int idx, cc8* key, T value) - { - GetField(idx, key); - T result = GetValue < T >(-1, value); - this->Pop(); - - return result; - } - - template - T LuaxState::GetField(int idx, int key, T value) - { - GetField(idx, key); - T result = GetValue < T >(-1, value); - Pop(); - - return result; - } - - template - T* LuaxState::GetLuaUserdata(int idx) - { - void* p = nullptr; - - if (IsType(idx, LUA_TUSERDATA)) - { - p = *(void**)lua_touserdata(mState, idx); - } - - return static_cast(p); - } - -} \ No newline at end of file -- cgit v1.1-26-g67d0