| Index: runtime/vm/jit_optimizer.cc
|
| diff --git a/runtime/vm/jit_optimizer.cc b/runtime/vm/jit_optimizer.cc
|
| index 172f5d241645708f30d10b589c1c408f759a8971..f05813d0b7628bc0412b0683b41ea6c5a37dad15 100644
|
| --- a/runtime/vm/jit_optimizer.cc
|
| +++ b/runtime/vm/jit_optimizer.cc
|
| @@ -2917,9 +2917,10 @@ void JitOptimizer::VisitStoreInstanceField(
|
| // usage count of at least 1/kGetterSetterRatio of the getter usage count.
|
| // This is to avoid unboxing fields where the setter is never or rarely
|
| // executed.
|
| - const Field& field = Field::ZoneHandle(Z, instr->field().Original());
|
| + const Field& field = instr->field();
|
| const String& field_name = String::Handle(Z, field.name());
|
| - const Class& owner = Class::Handle(Z, field.Owner());
|
| + const Class& owner =
|
| + Class::Handle(Z, Field::Handle(Z, field.Original()).Owner());
|
| const Function& getter =
|
| Function::Handle(Z, owner.LookupGetterFunction(field_name));
|
| const Function& setter =
|
| @@ -2954,6 +2955,7 @@ void JitOptimizer::VisitStoreInstanceField(
|
| OS::Print(" getter usage count: %" Pd "\n", getter.usage_counter());
|
| }
|
| }
|
| + ASSERT(field.IsOriginal());
|
| field.set_is_unboxing_candidate(false);
|
| field.DeoptimizeDependentCode();
|
| } else {
|
|
|