| 9510 | |
| 9511 | |
| 9512 | static void setnodevector (lua_State *L, Table *t, int size) { |
| 9513 | int lsize; |
| 9514 | if (size == 0) { /* no elements to hash part? */ |
| 9515 | t->node = cast(Node *, dummynode); /* use common `dummynode' */ |
| 9516 | lsize = 0; |
| 9517 | } |
| 9518 | else { |
| 9519 | int i; |
| 9520 | lsize = ceillog2(size); |
| 9521 | if (lsize > MAXBITS) |
| 9522 | luaG_runerror(L, "table overflow"); |
| 9523 | size = twoto(lsize); |
| 9524 | t->node = luaM_newvector(L, size, Node); |
| 9525 | for (i=0; i<size; i++) { |
| 9526 | Node *n = gnode(t, i); |
| 9527 | gnext(n) = NULL; |
| 9528 | setnilvalue(gkey(n)); |
| 9529 | setnilvalue(gval(n)); |
| 9530 | } |
| 9531 | } |
| 9532 | t->lsizenode = cast_byte(lsize); |
| 9533 | t->lastfree = gnode(t, size); /* all positions are free */ |
| 9534 | } |
| 9535 | |
| 9536 | |
| 9537 | static void resize (lua_State *L, Table *t, int nasize, int nhsize) { |
no test coverage detected