MCPcopy Create free account
hub / github.com/MergHQ/CRYENGINE / IterTable

Function IterTable

Code/CryEngine/CryScriptSystem/ScriptTable.cpp:344–418  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

342}
343
344static void IterTable(lua_State* L, IScriptTableDumpSink* p)
345{
346 lua_pushnil(L); // first key
347 while (lua_next(L, -2))
348 {
349 int keyType = lua_type(L, -2);
350 int valType = lua_type(L, -1);
351
352 if (keyType == LUA_TSTRING)
353 {
354 const char* key = lua_tostring(L, -2);
355 switch (valType)
356 {
357 case LUA_TNIL:
358 p->OnElementFound(key, svtNull);
359 break;
360 case LUA_TBOOLEAN:
361 p->OnElementFound(key, svtBool);
362 break;
363 case LUA_TLIGHTUSERDATA:
364 p->OnElementFound(key, svtPointer);
365 break;
366 case LUA_TNUMBER:
367 p->OnElementFound(key, svtNumber);
368 break;
369 case LUA_TSTRING:
370 p->OnElementFound(key, svtString);
371 break;
372 case LUA_TTABLE:
373 if (strcmp(key, "__index") != 0)
374 p->OnElementFound(key, svtObject);
375 break;
376 case LUA_TFUNCTION:
377 p->OnElementFound(key, svtFunction);
378 break;
379 case LUA_TUSERDATA:
380 p->OnElementFound(key, svtUserData);
381 break;
382 }
383 }
384 else
385 {
386 int idx = (int)lua_tonumber(L, -2);
387 switch (valType)
388 {
389 case LUA_TNIL:
390 p->OnElementFound(idx, svtNull);
391 break;
392 case LUA_TBOOLEAN:
393 p->OnElementFound(idx, svtBool);
394 break;
395 case LUA_TLIGHTUSERDATA:
396 p->OnElementFound(idx, svtPointer);
397 break;
398 case LUA_TNUMBER:
399 p->OnElementFound(idx, svtNumber);
400 break;
401 case LUA_TSTRING:

Callers 1

DumpMethod · 0.85

Calls 2

strcmpFunction · 0.85
OnElementFoundMethod · 0.45

Tested by

no test coverage detected