private void checkArrayElementType(ThreadContext context, RubyArray arr) { for (int i = 0; i < arr.getLength(); i++) { Utils.checkType(context, fieldType, arr.eltInternal(i), (RubyModule) typeClass); } }
@Deprecated // not used public static IRubyObject arrayPostOrNilTwo(RubyArray array, int pre, int post) { if (pre + post < array.getLength()) { return array.eltInternal(array.getLength() - post + 2); } else if (pre + 2 < array.getLength()) { return array.eltInternal(pre + 2); } else { return array.getRuntime().getNil(); } }
@Deprecated // not used public static IRubyObject arrayPostOrNilZero(RubyArray array, int pre, int post) { if (pre + post < array.getLength()) { return array.eltInternal(array.getLength() - post + 0); } else if (pre + 0 < array.getLength()) { return array.eltInternal(pre + 0); } else { return array.getRuntime().getNil(); } }
@Deprecated // not used public static IRubyObject arrayPostOrNilZero(RubyArray array, int pre, int post) { if (pre + post < array.getLength()) { return array.eltInternal(array.getLength() - post + 0); } else if (pre + 0 < array.getLength()) { return array.eltInternal(pre + 0); } else { return array.getRuntime().getNil(); } }
@Deprecated // not used public static RubyArray subarrayOrEmpty(RubyArray array, Ruby runtime, int index, int post) { if (index + post < array.getLength()) { return createSubarray(array, index, post); } else { return RubyArray.newEmptyArray(runtime); } }
private static void copyDataToJavaArrayDirect(final Class<?> targetType, final RubyArray rubyArray, final Object[] javaArray) { int length = rubyArray.getLength(); final int javaLength = javaArray.length; if ( javaLength < length ) length = javaLength; for ( int i = 0; i < length; i++ ) { javaArray[i] = rubyArray.eltInternal(i).toJava(targetType); } }
private static void copyDataToJavaArrayDirect(final Class<?> targetType, final RubyArray rubyArray, final byte[] javaArray) { int length = rubyArray.getLength(); final int javaLength = javaArray.length; if ( javaLength < length ) length = javaLength; for ( int i = 0; i < length; i++ ) { javaArray[i] = (Byte) rubyArray.eltInternal(i).toJava(targetType); } }
private static void copyDataToJavaArrayDirect(final Class<?> targetType, final RubyArray rubyArray, final int[] javaArray) { int length = rubyArray.getLength(); final int javaLength = javaArray.length; if ( javaLength < length ) length = javaLength; for ( int i = 0; i < length; i++ ) { javaArray[i] = (Integer) rubyArray.eltInternal(i).toJava(targetType); } }
private static void copyDataToJavaArrayDirect(final Class<?> targetType, final RubyArray rubyArray, final long[] javaArray) { int length = rubyArray.getLength(); final int javaLength = javaArray.length; if ( javaLength < length ) length = javaLength; for ( int i = 0; i < length; i++ ) { javaArray[i] = (Long) rubyArray.eltInternal(i).toJava(targetType); } }
private static RubyArray coerceResult(final Ruby runtime, final IRubyObject result, final boolean err) { if (result instanceof RubyArray && ((RubyArray) result).getLength() == 2) return (RubyArray) result; if (err || !result.isNil()) throw runtime.newTypeError("coerce must return [x, y]"); return null; }
private static void copyDataToJavaArrayDirect(final Class<?> targetType, final RubyArray rubyArray, final byte[] javaArray) { int length = rubyArray.getLength(); final int javaLength = javaArray.length; if ( javaLength < length ) length = javaLength; for ( int i = 0; i < length; i++ ) { javaArray[i] = (Byte) rubyArray.eltInternal(i).toJava(targetType); } }
@Deprecated // not used public static IRubyObject arrayEntryOrNil(RubyArray array, int index) { if (index < array.getLength()) { return array.eltInternal(index); } else { return array.getRuntime().getNil(); } }
@Deprecated // not used public static IRubyObject arrayEntryOrNilOne(RubyArray array) { if (1 < array.getLength()) { return array.eltInternal(1); } else { return array.getRuntime().getNil(); } }
@Deprecated // not used public static IRubyObject arrayEntryOrNilTwo(RubyArray array) { if (2 < array.getLength()) { return array.eltInternal(2); } else { return array.getRuntime().getNil(); } }
public static RubyArray viewArgsArray(ThreadContext context, RubyArray rubyArray, int preArgsCount, int postArgsCount) { int n = rubyArray.getLength(); if (preArgsCount + postArgsCount >= n) { return RubyArray.newEmptyArray(context.runtime); } return (RubyArray)rubyArray.subseq(context.runtime.getArray(), preArgsCount, n - preArgsCount - postArgsCount, true); }
private IRubyObject setByName(String name, IRubyObject value) { final RubyArray member = __member__(); modify(); for ( int i = 0; i < member.getLength(); i++ ) { if ( member.eltInternal(i).asJavaString().equals(name) ) { return values[i] = value; } } return null; }
@JRubyMethod(name = "<<", rest = true) public IRubyObject op_lshift(ThreadContext context, IRubyObject[]args) { if (args.length == 1 && args[0] instanceof RubyArray && ((RubyArray) args[0]).getLength() == 1) args[0] = RubyArray.newArray(context.runtime, args[0]); yield(context, args); return this; } }
public static RubyArray viewArgsArray(ThreadContext context, RubyArray rubyArray, int preArgsCount, int postArgsCount) { int n = rubyArray.getLength(); if (preArgsCount + postArgsCount >= n) { return RubyArray.newEmptyArray(context.runtime); } return (RubyArray)rubyArray.subseq(context.runtime.getArray(), preArgsCount, n - preArgsCount - postArgsCount, true); }
@JRubyMethod(name = { "put_array_of_pointer" }, required = 2) public IRubyObject put_array_of_pointer(ThreadContext context, IRubyObject offset, IRubyObject arrParam) { final int POINTER_SIZE = (Platform.getPlatform().addressSize / 8); final RubyArray arr = (RubyArray) arrParam; final int count = arr.getLength(); long off = getOffset(offset); for (int i = 0; i < count; ++i) { putPointer(context, off + (i * POINTER_SIZE), arr.entry(i)); } return this; }
public static void copyDataToJavaArray( ThreadContext context, RubyArray rubyArray, int src, JavaArray javaArray, int dest, int length) { Class targetType = javaArray.getComponentType(); int destLength = (int)javaArray.length().getLongValue(); int srcLength = rubyArray.getLength(); for (int i = 0; src + i < srcLength && dest + i < destLength && i < length; i++) { javaArray.setWithExceptionHandling(dest + i, rubyArray.entry(src + i).toJava(targetType)); } } }