| 9571 | |
| 9572 | |
| 9573 | static void rehash (lua_State *L, Table *t, const TValue *ek) { |
| 9574 | int nasize, na; |
| 9575 | int nums[MAXBITS+1]; /* nums[i] = number of keys between 2^(i-1) and 2^i */ |
| 9576 | int i; |
| 9577 | int totaluse; |
| 9578 | for (i=0; i<=MAXBITS; i++) nums[i] = 0; /* reset counts */ |
| 9579 | nasize = numusearray(t, nums); /* count keys in array part */ |
| 9580 | totaluse = nasize; /* all those keys are integer keys */ |
| 9581 | totaluse += numusehash(t, nums, &nasize); /* count keys in hash part */ |
| 9582 | /* count extra key */ |
| 9583 | nasize += countint(ek, nums); |
| 9584 | totaluse++; |
| 9585 | /* compute new size for array part */ |
| 9586 | na = computesizes(nums, &nasize); |
| 9587 | /* resize the table to new computed sizes */ |
| 9588 | resize(L, t, nasize, totaluse - na); |
| 9589 | } |
| 9590 | |
| 9591 | |
| 9592 |
no test coverage detected