MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / luaH_next

Function luaH_next

third-party/lua-5.5.0/src/ltable.c:361–381  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

359
360
361int luaH_next (lua_State *L, Table *t, StkId key) {
362 unsigned int asize = t->asize;
363 unsigned int i = findindex(L, t, s2v(key), asize); /* find original key */
364 for (; i < asize; i++) { /* try first array part */
365 lu_byte tag = *getArrTag(t, i);
366 if (!tagisempty(tag)) { /* a non-empty entry? */
367 setivalue(s2v(key), cast_int(i) + 1);
368 farr2val(t, i, tag, s2v(key + 1));
369 return 1;
370 }
371 }
372 for (i -= asize; i < sizenode(t); i++) { /* hash part */
373 if (!isempty(gval(gnode(t, i)))) { /* a non-empty entry? */
374 Node *n = gnode(t, i);
375 getnodekey(L, s2v(key), n);
376 setobj2s(L, key + 1, gval(n));
377 return 1;
378 }
379 }
380 return 0; /* no more elements */
381}
382
383
384/* Extra space in Node array if it has a lastfree entry */

Callers 1

lua_nextFunction · 0.70

Calls 1

findindexFunction · 0.70

Tested by

no test coverage detected