MCPcopy Create free account
hub / github.com/F-Stack/f-stack / setnodevector

Function setnodevector

freebsd/contrib/openzfs/module/lua/ltable.c:279–301  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

277
278
279static void setnodevector (lua_State *L, Table *t, int size) {
280 int lsize;
281 if (size == 0) { /* no elements to hash part? */
282 t->node = cast(Node *, dummynode); /* use common `dummynode' */
283 lsize = 0;
284 }
285 else {
286 int i;
287 lsize = luaO_ceillog2(size);
288 if (lsize > MAXBITS)
289 luaG_runerror(L, "table overflow");
290 size = twoto(lsize);
291 t->node = luaM_newvector(L, size, Node);
292 for (i=0; i<size; i++) {
293 Node *n = gnode(t, i);
294 gnext(n) = NULL;
295 setnilvalue(gkey(n));
296 setnilvalue(gval(n));
297 }
298 }
299 t->lsizenode = cast_byte(lsize);
300 t->lastfree = gnode(t, size); /* all positions are free */
301}
302
303
304void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) {

Callers 2

luaH_resizeFunction · 0.70
luaH_newFunction · 0.70

Calls 2

luaO_ceillog2Function · 0.85
luaG_runerrorFunction · 0.70

Tested by

no test coverage detected