always expand ivar arrays to max width

If the instance variable table hasn't been "expanded", allocate the
maximum size of the ivar table.  This operates under the assumption that
most objects will eventually expand their ivar array to the maximum
width anyway, so we may as well avoid realloc calls.
This commit is contained in:
Aaron Patterson 2019-07-02 10:33:40 +01:00 коммит произвёл Aaron Patterson
Родитель 95d23f36ff
Коммит b0bf654c31
1 изменённых файлов: 1 добавлений и 2 удалений

Просмотреть файл

@ -896,8 +896,7 @@ iv_index_tbl_newsize(struct ivar_update *ivup)
uint32_t index = (uint32_t)ivup->index; /* should not overflow */
uint32_t newsize = (index+1) + (index+1)/4; /* (index+1)*1.25 */
if (!ivup->iv_extended &&
ivup->u.iv_index_tbl->num_entries < (st_index_t)newsize) {
if (!ivup->iv_extended) {
newsize = (uint32_t)ivup->u.iv_index_tbl->num_entries;
}
return newsize;