public final IRubyObject get(ThreadContext context, Storage cache, Member m, AbstractMemory ptr) { return mappedType.fromNative(context, nativeFieldIO.get(context, nullStorage, m, ptr)); }
/** * Gets the cacheable status of this Struct member * * @return <tt>true</tt> if this member type is cacheable */ public final boolean isCacheable() { return io.isCacheable(); }
public final boolean isValueReferenceNeeded() { return nativeFieldIO.isValueReferenceNeeded() || mappedType.isReferenceRequired(); }
public final boolean isValueReferenceNeeded() { return nativeFieldIO.isValueReferenceNeeded() || mappedType.isReferenceRequired(); }
public final IRubyObject get(ThreadContext context, Storage cache, Member m, AbstractMemory ptr) { return mappedType.fromNative(context, nativeFieldIO.get(context, nullStorage, m, ptr)); }
public final IRubyObject get(ThreadContext context, Storage cache, Member m, AbstractMemory ptr) { return mappedType.fromNative(context, nativeFieldIO.get(context, nullStorage, m, ptr)); }
public final boolean isValueReferenceNeeded() { return nativeFieldIO.isValueReferenceNeeded() || mappedType.isReferenceRequired(); }
public final boolean isValueReferenceNeeded() { return nativeFieldIO.isValueReferenceNeeded() || mappedType.isReferenceRequired(); }
public final IRubyObject get(ThreadContext context, Storage cache, Member m, AbstractMemory ptr) { return mappedType.fromNative(context, nativeFieldIO.get(context, nullStorage, m, ptr)); }
/** * Checks if a reference to the ruby object assigned to this field needs to be stored * * @return <tt>true</tt> if this member type requires the ruby value to be stored. */ public final boolean isValueReferenceNeeded() { return io.isValueReferenceNeeded(); }
/** * Writes a ruby value to the native struct member as the appropriate native value. * * @param runtime The ruby runtime * @param cache The value cache * @param ptr The struct memory area. * @param value The ruby value to write to the native struct member. */ public final void put(ThreadContext context, Storage cache, AbstractMemory ptr, IRubyObject value) { io.put(context, cache, this, ptr, value); }
/** * Reads a ruby value from the struct member. * * @param cache The cache used to store * @param ptr The struct memory area. * @return A ruby object equivalent to the native member value. */ public final IRubyObject get(ThreadContext context, Storage cache, AbstractMemory ptr) { return io.get(context, cache, this, ptr); }
/** * Writes a ruby value to the native struct member as the appropriate native value. * * @param runtime The ruby runtime * @param cache The value cache * @param ptr The struct memory area. * @param value The ruby value to write to the native struct member. */ public final void put(ThreadContext context, Storage cache, AbstractMemory ptr, IRubyObject value) { io.put(context, cache, this, ptr, value); }
/** * Reads a ruby value from the struct member. * * @param cache The cache used to store * @param ptr The struct memory area. * @return A ruby object equivalent to the native member value. */ public final IRubyObject get(ThreadContext context, Storage cache, AbstractMemory ptr) { return io.get(context, cache, this, ptr); }
public void put(ThreadContext context, Storage cache, Member m, AbstractMemory ptr, IRubyObject value) { final IRubyObject nativeValue = mappedType.toNative(context, value); nativeFieldIO.put(context, cache, m, ptr, nativeValue); if (isValueReferenceNeeded()) { // keep references to both the ruby and native values to preserve // reference chains cache.putReference(m, new Object[] { value, nativeValue }); } } }
/** * Checks if a reference to the ruby object assigned to this field needs to be stored * * @return <tt>true</tt> if this member type requires the ruby value to be stored. */ public final boolean isValueReferenceNeeded() { return io.isValueReferenceNeeded(); }
/** * Checks if a reference to the ruby object assigned to this field needs to be stored * * @return <tt>true</tt> if this member type requires the ruby value to be stored. */ public final boolean isValueReferenceNeeded() { return io.isValueReferenceNeeded(); }
/** * Reads a ruby value from the struct member. * * @param cache The cache used to store * @param ptr The struct memory area. * @return A ruby object equivalent to the native member value. */ public final IRubyObject get(ThreadContext context, Storage cache, AbstractMemory ptr) { return io.get(context, cache, this, ptr); }
/** * Gets the cacheable status of this Struct member * * @return <tt>true</tt> if this member type is cacheable */ public final boolean isCacheable() { return io.isCacheable(); }
public void put(ThreadContext context, Storage cache, Member m, AbstractMemory ptr, IRubyObject value) { final IRubyObject nativeValue = mappedType.toNative(context, value); nativeFieldIO.put(context, cache, m, ptr, nativeValue); if (isValueReferenceNeeded()) { // keep references to both the ruby and native values to preserve // reference chains cache.putReference(m, new Object[] { value, nativeValue }); } } }