зеркало из https://github.com/github/ruby.git
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:
Родитель
16b0242808
Коммит
bbeebc9258
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче