MCPcopy Create free account
hub / github.com/DFHack/dfhack / setnodevector

Function setnodevector

depends/lua/src/ltable.c:310–332  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

308
309
310static void setnodevector (lua_State *L, Table *t, unsigned int size) {
311 if (size == 0) { /* no elements to hash part? */
312 t->node = cast(Node *, dummynode); /* use common 'dummynode' */
313 t->lsizenode = 0;
314 t->lastfree = NULL; /* signal that it is using dummy node */
315 }
316 else {
317 int i;
318 int lsize = luaO_ceillog2(size);
319 if (lsize > MAXHBITS)
320 luaG_runerror(L, "table overflow");
321 size = twoto(lsize);
322 t->node = luaM_newvector(L, size, Node);
323 for (i = 0; i < (int)size; i++) {
324 Node *n = gnode(t, i);
325 gnext(n) = 0;
326 setnilvalue(wgkey(n));
327 setnilvalue(gval(n));
328 }
329 t->lsizenode = cast_byte(lsize);
330 t->lastfree = gnode(t, size); /* all positions are free */
331 }
332}
333
334
335typedef struct {

Callers 2

auxsetnodeFunction · 0.85
luaH_newFunction · 0.85

Calls 3

castFunction · 0.85
luaO_ceillog2Function · 0.85
luaG_runerrorFunction · 0.85

Tested by

no test coverage detected