public VariableAccessor getAccessor(IRubyObject o) { RubyClass cls = o.getMetaClass().getRealClass(); VariableAccessor localAccessor = accessor; IRubyObject value; if (localAccessor.getClassId() != cls.hashCode()) { localAccessor = cls.getVariableAccessorForRead(getRef()); accessor = localAccessor; } return localAccessor; }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetFieldInstr(ii.getRenamedVariable(getResult()), getSource().cloneForInlining(ii), getRef()); }
@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetFieldInstr(ii.getRenamedVariable(getResult()), getSource().cloneForInlining(ii), getRef()); }
public VariableAccessor getAccessor(IRubyObject o) { RubyClass cls = o.getMetaClass().getRealClass(); VariableAccessor localAccessor = accessor; IRubyObject value; if (localAccessor.getClassId() != cls.hashCode()) { localAccessor = cls.getVariableAccessorForRead(getRef()); accessor = localAccessor; } return localAccessor; }
@Override public void GetFieldInstr(GetFieldInstr getfieldinstr) { visit(getfieldinstr.getSource()); jvm.method().getField(getfieldinstr.getRef()); jvmStoreLocal(getfieldinstr.getResult()); }
@Override public void GetFieldInstr(GetFieldInstr getfieldinstr) { visit(getfieldinstr.getSource()); jvm.method().getField(getfieldinstr.getRef()); jvmStoreLocal(getfieldinstr.getResult()); }