LuaInterface.LuaDLL.lua_rawlen C# (CSharp) Method

lua_rawlen() public static method

public static lua_rawlen ( IntPtr luaState, int stackPos ) : int
luaState System.IntPtr
stackPos int
return int
        public static int lua_rawlen(IntPtr luaState, int stackPos)
		{
			return LuaDLLWrapper.luaS_rawlen(luaState, stackPos);
		}

Usage Example

示例#1
0
        public static void SetSearcher(IntPtr L, LuaCSFunction loader)
        {
            int top = LuaDLL.lua_gettop(L);

            LuaDLL.wlua_getglobal(L, "package");               //package
            LuaDLL.wlua_getfield(L, -1, "searchers");          //package,searchers
            LuaDLL.wlua_getglobal(L, "cswrapfunc");            //package,searchers,wrap
            LuaDLL.wLua_wrapfunction(L, -1, loader);           //package,searchers,wrap,loader
            LuaDLL.wlua_pushcclosure(L, LuaFuncs.searcher, 1); //package,searchers,wrap,searcher
            LuaDLL.lua_remove(L, -2);                          //package,searchers,searcher

            int searchersIndex = LuaDLL.lua_gettop(L) - 1;

            for (int e = (int)LuaDLL.lua_rawlen(L, searchersIndex) + 1; e > 1; e--)
            {
                LuaDLL.lua_rawgeti(L, searchersIndex, e - 1);    //package,searchers,searcher,value
                LuaDLL.lua_rawseti(L, searchersIndex, e);        //package,searchers,searcher
            }
            LuaDLL.lua_rawseti(L, searchersIndex, 1);            //package,searchers
            LuaDLL.lua_settop(L, top);
        }
LuaDLL