MCPcopy Create free account
hub / github.com/Tencent/UnLua / TArray_Pairs

Function TArray_Pairs

Plugins/UnLua/Source/UnLua/Private/BaseLib/LuaLib_Array.cpp:71–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71static int32 TArray_Pairs(lua_State* L)
72{
73 int32 NumParams = lua_gettop(L);
74 if (NumParams != 1)
75 return luaL_error(L, "invalid parameters");
76
77 FLuaArray* Array = (FLuaArray*)GetCppInstanceFast(L, 1);
78 if (!Array)
79 return UnLua::LowLevel::PushEmptyIterator(L);
80
81 TArray_Guard(L, Array);
82
83 lua_pushcfunction(L, TArray_Enumerable);
84 FLuaArray::FLuaArrayEnumerator** Enumerator = (FLuaArray::FLuaArrayEnumerator**)lua_newuserdata(L, sizeof(FLuaArray::FLuaArrayEnumerator*));
85 *Enumerator = new FLuaArray::FLuaArrayEnumerator(Array, 0);
86
87 lua_newtable(L);
88 lua_pushcfunction(L, FLuaArray::FLuaArrayEnumerator::gc);
89 lua_setfield(L, -2, "__gc");
90 lua_setmetatable(L, -2);
91 lua_pushnil(L);
92
93 return 3;
94}
95
96/**
97 * @see FLuaArray::Num(...)

Callers

nothing calls this directly

Calls 8

lua_gettopFunction · 0.85
luaL_errorFunction · 0.85
GetCppInstanceFastFunction · 0.85
PushEmptyIteratorFunction · 0.85
TArray_GuardFunction · 0.85
lua_setfieldFunction · 0.85
lua_setmetatableFunction · 0.85
lua_pushnilFunction · 0.85

Tested by

no test coverage detected