| 277 | |
| 278 | |
| 279 | static 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 | |
| 304 | void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) { |
no test coverage detected