mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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:
parent
95d23f36ff
commit
b0bf654c31
Notes:
git
2020-01-07 05:42:01 +09:00
1 changed files with 1 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue