| 331 | |
| 332 | |
| 333 | static void rehash (lua_State *L, Table *t, const TValue *ek) { |
| 334 | int nasize, na; |
| 335 | int nums[MAXBITS+1]; /* nums[i] = number of keys between 2^(i-1) and 2^i */ |
| 336 | int i; |
| 337 | int totaluse; |
| 338 | for (i=0; i<=MAXBITS; i++) nums[i] = 0; /* reset counts */ |
| 339 | nasize = numusearray(t, nums); /* count keys in array part */ |
| 340 | totaluse = nasize; /* all those keys are integer keys */ |
| 341 | totaluse += numusehash(t, nums, &nasize); /* count keys in hash part */ |
| 342 | /* count extra key */ |
| 343 | nasize += countint(ek, nums); |
| 344 | totaluse++; |
| 345 | /* compute new size for array part */ |
| 346 | na = computesizes(nums, &nasize); |
| 347 | /* resize the table to new computed sizes */ |
| 348 | resize(L, t, nasize, totaluse - na); |
| 349 | } |
| 350 | |
| 351 | |
| 352 |
no test coverage detected