| 82 | } |
| 83 | |
| 84 | static int32 TMap_Pairs(lua_State* L) |
| 85 | { |
| 86 | int32 NumParams = lua_gettop(L); |
| 87 | if (NumParams != 1) |
| 88 | return luaL_error(L, "invalid parameters"); |
| 89 | |
| 90 | FLuaMap* Map = (FLuaMap*)GetCppInstanceFast(L, 1); |
| 91 | if (!Map) |
| 92 | return UnLua::LowLevel::PushEmptyIterator(L); |
| 93 | |
| 94 | TMap_Guard(L, Map); |
| 95 | |
| 96 | lua_pushcfunction(L, TMap_Enumerable); |
| 97 | FLuaMap::FLuaMapEnumerator** Enumerator = (FLuaMap::FLuaMapEnumerator**)lua_newuserdata(L, sizeof(FLuaMap::FLuaMapEnumerator*)); |
| 98 | *Enumerator = new FLuaMap::FLuaMapEnumerator(Map, 0); |
| 99 | |
| 100 | lua_newtable(L); |
| 101 | lua_pushcfunction(L, FLuaMap::FLuaMapEnumerator::gc); |
| 102 | lua_setfield(L, -2, "__gc"); |
| 103 | lua_setmetatable(L, -2); |
| 104 | lua_pushnil(L); |
| 105 | |
| 106 | return 3; |
| 107 | } |
| 108 | |
| 109 | /** |
| 110 | * @see FLuaMap::Num(...) |
nothing calls this directly
no test coverage detected