Only set shape id for CCs on attr_set + ivar

Only ivar reader and writer methods should need the shape ID set on the
inline cache.  We shouldn't accidentally overwrite parts of the CC union
when it's not necessary.
This commit is contained in:
Aaron Patterson 2024-06-06 17:38:25 -07:00 коммит произвёл Aaron Patterson
Родитель 16b0242808
Коммит bbeebc9258
1 изменённых файлов: 4 добавлений и 1 удалений

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

@ -348,7 +348,10 @@ vm_cc_new(VALUE klass,
break;
}
vm_cc_attr_index_initialize(cc, INVALID_SHAPE_ID);
if (cme->def->type == VM_METHOD_TYPE_ATTRSET || cme->def->type == VM_METHOD_TYPE_IVAR) {
vm_cc_attr_index_initialize(cc, INVALID_SHAPE_ID);
}
RB_DEBUG_COUNTER_INC(cc_new);
return cc;
}