diff options
| author | chai <chaifix@163.com> | 2019-03-19 23:06:27 +0800 | 
|---|---|---|
| committer | chai <chaifix@163.com> | 2019-03-19 23:06:27 +0800 | 
| commit | 1497dccd63a84b7ee2b229b1ad9c5c02718f2a78 (patch) | |
| tree | f8d1bff50da13e126d08c7345653e002e293202d /Source/3rdParty/Luax/luax_class.cpp | |
| parent | 5e2a973516e0729b225da9de0b03015dc5854ac4 (diff) | |
*rename
Diffstat (limited to 'Source/3rdParty/Luax/luax_class.cpp')
| -rw-r--r-- | Source/3rdParty/Luax/luax_class.cpp | 195 | 
1 files changed, 0 insertions, 195 deletions
diff --git a/Source/3rdParty/Luax/luax_class.cpp b/Source/3rdParty/Luax/luax_class.cpp deleted file mode 100644 index 4c74926..0000000 --- a/Source/3rdParty/Luax/luax_class.cpp +++ /dev/null @@ -1,195 +0,0 @@ -#include "luax_class.hpp" -#include "luax_runtime.h" -#include "luax_cfunctions.h" - -namespace Luax -{ - -#ifdef LUAX_ENABLE_PLAIN_CLASS - -	int LuaxPlainClass::registry(lua_State* L) -	{ -		LUAX_STATE(L); - -		// params: -		// 1: class name  - -		cc8* type = state.GetValue<cc8*>(1, ""); - -		lua_newtable(L); // class table  - -		// GetClassName() -		lua_pushstring(L, type); -		lua_pushcclosure(L, luax_c_getupvalue, 1); -		lua_setfield(L, -2, "GetClassName"); - -		// GetClass()  -		lua_pushvalue(L, -1); // class table  -		lua_pushcclosure(L, luax_c_getupvalue, 1); -		lua_setfield(L, -2, "GetClass"); - -		// New() -		lua_pushvalue(L, -1); // class table -		lua_pushcclosure(L, l_New, 1); -		lua_setfield(L, -2, "New"); - -		// Extend() -		lua_pushvalue(L, -1); // class table -		lua_pushcclosure(L, l_Extend, 1); -		lua_setfield(L, -2, "Extend"); - -		lua_pushvalue(L, -1); // class table  -		lua_setfield(L, -2, "__index"); - -		lua_pushstring(L, type);  -		lua_pushcclosure(L, l___tostring, 1); -		lua_setfield(L, -2, "__tostring"); - -		return 1; -	} - -	int LuaxPlainClass::l___tostring(lua_State* L) -	{ -		// upvalues:  -		// 1: class name  - -		// params:  -		// 1: instance  - -		if (!lua_istable(L, 1)) -		{ -			return luaL_typerror(L, 1, lua_typename(L, LUA_TTABLE)); -		} - -		cc8* type = lua_tostring(L, lua_upvalueindex(1)); - -		lua_pushfstring(L, "%s: %p", type, lua_topointer(L, 1)); - -		return 1; -	} - -	/// -	/// NewnԻȡCtorCtorʼʵ -	///  -	int LuaxPlainClass::l_New(lua_State* L) -	{ -		LUAX_STATE(L); -		 -		// upvalues: -		// 1: class table - -		// params: -		// n: params -		int n = lua_gettop(L); - -		int classTable = lua_upvalueindex(1); - -		lua_newtable(L); // instance table  - -		// instance  metatable Ϊ class  -		lua_pushvalue(L, classTable); -		lua_setmetatable(L, -2); - -		// ҵ캯ᴥmetatable.__index,ݼ̳ҡ -		lua_getfield(L, classTable, "Ctor"); -		if (state.IsType(-1, LUA_TFUNCTION)) -		{ -			// stack:  -			// -1: Ctor() -			// -2: instance  -			// -3~-n-2: params - -			lua_insert(L, -2 - n); -			// stack:  -			// -1: instance -			// -2~-n-1: params -			// -n-2: Ctor() - -			lua_pushvalue(L, -1); -			// stack:  -			// -1: instance -			// -2: instance -			// -3~-n-2: params -			// -n-3: Ctor - -			lua_insert(L, -3 - n); -			// stack: -			// -1: instance -			// -2~-n-1: params -			// -n-2: Ctor() -			// -n-3: instance - -			lua_insert(L, -1 - n); -			// stack: -			// -1~-n: params -			// -n-1: instance  -			// -n-2: Ctor()  -			// -n-3: instance - -			lua_pcall(L, n + 1, 0, 0); -		} -		else -		{ -			state.Pop(); -		} - -		return 1; -	} - -	int LuaxPlainClass::l_Extend(lua_State* L) -	{ -		LUAX_STATE(L); - -		// upvalues: -		// 1: base class - -		// params: -		// 1: class name - -		cc8* type = state.GetValue<cc8*>(1, ""); - -		int baseClass = lua_upvalueindex(1); - -		lua_newtable(L); // class table - -		// GetClassName() -		lua_pushstring(L, type); -		lua_pushcclosure(L, luax_c_getupvalue, 1); -		lua_setfield(L, -2, "GetClassName"); - -		// GetClass()  -		lua_pushvalue(L, -1); // class table  -		lua_pushcclosure(L, luax_c_getupvalue, 1); -		lua_setfield(L, -2, "GetClass"); - -		// New() -		lua_pushvalue(L, -1); // class table -		lua_pushcclosure(L, l_New, 1); -		lua_setfield(L, -2, "New"); - -		// Extend() -		lua_pushvalue(L, -1); // class table -		lua_pushcclosure(L, l_Extend, 1); -		lua_setfield(L, -2, "Extend"); - -		// .__base  -		lua_pushvalue(L, baseClass); // base class -		lua_setfield(L, -2, "__base"); - -		lua_pushvalue(L, -1); // class table  -		lua_setfield(L, -2, "__index"); - -		lua_pushstring(L, type); -		lua_pushcclosure(L, l___tostring, 1); -		lua_setfield(L, -2, "__tostring"); - -		// classmetatableΪbaseClass -		lua_pushvalue(L, baseClass);  -		lua_setmetatable(L, -2); - -		return 1; -	} - -#endif /*LUAX_ENABLE_PLAIN_CLASS*/ - -}
\ No newline at end of file  | 
