| 365 | |
| 366 | |
| 367 | static void rehash (lua_State *L, Table *t, const TValue *ek) { |
| 368 | int nasize, na; |
| 369 | int nums[MAXBITS+1]; /* nums[i] = number of keys between 2^(i-1) and 2^i */ |
| 370 | int i; |
| 371 | int totaluse; |
| 372 | for (i=0; i<=MAXBITS; i++) nums[i] = 0; /* reset counts */ |
| 373 | nasize = numusearray(t, nums); /* count keys in array part */ |
| 374 | totaluse = nasize; /* all those keys are integer keys */ |
| 375 | totaluse += numusehash(t, nums, &nasize); /* count keys in hash part */ |
| 376 | /* count extra key */ |
| 377 | nasize += countint(ek, nums); |
| 378 | totaluse++; |
| 379 | /* compute new size for array part */ |
| 380 | na = computesizes(nums, &nasize); |
| 381 | /* resize the table to new computed sizes */ |
| 382 | resize(L, t, nasize, totaluse - na); |
| 383 | } |
| 384 | |
| 385 | |
| 386 |
no test coverage detected