public final IRubyObject setVariable( Ruby runtime, int index, String name, IRubyObject object, IRubyObject value) { VariableAccessor variableAccessor = variableWriters[index]; RubyClass cls = object.getMetaClass().getRealClass(); if (variableAccessor.getClassId() != cls.hashCode()) { variableWriters[index] = variableAccessor = cls.getVariableAccessorForWrite(name); } variableAccessor.set(object, value); return value; }