This class may be removed in the future. Consider the replacements in JEP 193 'Variable Handles': http://openjdk.java.net/jeps/193
static Object getObject(Object object, long fieldOffset) { return UNSAFE.getObject(object, fieldOffset); }
@SuppressWarnings("unchecked") protected final E elementAt(long sequence) { return (E) UNSAFE.getObject(entries, REF_ARRAY_BASE + ((sequence & indexMask) << REF_ELEMENT_SHIFT)); } }
static Object getObject(Object object, long fieldOffset) { return UNSAFE.getObject(object, fieldOffset); }
public static Object getObject( Object obj, long offset ) { return unsafe.getObject( obj, offset ); }
/** * A plain load (no ordering/fences) of an element from a given offset. * * @param buffer this.buffer * @param offset computed via {@link UnsafeRefArrayAccess#calcElementOffset(long)} * @return the element at the offset */ @SuppressWarnings("unchecked") public static <E> E lpElement(E[] buffer, long offset) { return (E) UNSAFE.getObject(buffer, offset); }
/** * Gets reference from object field. * * @param obj Object. * @param fieldOff Field offset. * @return Reference from object field. */ public static Object getObjectField(Object obj, long fieldOff) { return UNSAFE.getObject(obj, fieldOff); }
/** * Privileged method to get the context class loader of the given thread. * * @param thread the thread to introspect * @return the context class loader */ static ClassLoader getContextClassLoader(final Thread thread) { return (ClassLoader) unsafe.getObject(thread, contextClassLoaderOffs); }
@SuppressWarnings("unchecked") final E elementAt(long sequence) { return (E) UNSAFE.getObject(entries, REF_ARRAY_BASE + ((sequence & indexMask) << REF_ELEMENT_SHIFT)); } }
/** * A plain load (no ordering/fences) of an element from a given offset. * * @param buffer this.buffer * @param offset computed via {@link UnsafeRefArrayAccess#calcElementOffset(long)} * @return the element at the offset */ @SuppressWarnings("unchecked") public static <E> E lpElement(E[] buffer, long offset) { return (E) UNSAFE.getObject(buffer, offset); }
@SuppressWarnings("unchecked") protected final E lpElement(long offset) { return (E) UNSAFE.getObject(buffer, offset); }
@SuppressWarnings("unchecked") protected final E lpElement(E[] buffer, long offset) { return (E) UNSAFE.getObject(buffer, offset); }
/** * Warning: crashes if not an object ref ! * use getField().get() for a safe version .. * * @param obj * @return * @throws IllegalAccessException */ public final Object getObjectValue(Object obj) throws IllegalAccessException { if (!isAndroid && memOffset >= 0) { return FSTUtil.unFlaggedUnsafe.getObject(obj, memOffset); } return field.get(obj); }
public static void copyUSAsciiStrToBytes(String str, byte[] bytes) { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); System.arraycopy(chars, 0, bytes, 0, chars.length); } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); int i = 0; while (i < str.length()) { bytes[i] = (byte) chars[i++]; } } }
public static void copyUSAsciiStrToBytes(String str, byte[] bytes) { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); System.arraycopy(chars, 0, bytes, 0, str.length()); } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); int i = 0; while (i < str.length()) { bytes[i] = (byte) chars[i++]; } } }
public static void copyUSAsciiStrToBytes(String str, byte[] bytes) { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); System.arraycopy(chars, 0, bytes, 0, str.length()); } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); int i = 0; while (i < str.length()) { bytes[i] = (byte) chars[i++]; } } }
@Override public char[] toCharArray(String string) { char[] value = (char[]) UNSAFE.getObject(string, STRING_VALUE_FIELD_OFFSET); int offset = UNSAFE.getInt(string, STRING_OFFSET_FIELD_OFFSET); int count = UNSAFE.getInt(string, STRING_COUNT_FIELD_OFFSET); if (offset == 0 && count == value.length) { // no need to copy return value; } else { return string.toCharArray(); } }
@SuppressWarnings("unchecked") @Nullable Node<E> getNextRelaxed() { return (Node<E>) UnsafeAccess.UNSAFE.getObject(this, NEXT_OFFSET); }
Object getRelaxedObject() { return UnsafeAccess.UNSAFE.getObject(this, MoreRelaxedFields.OVALUE_OFFSET); } }
@SuppressWarnings("unchecked") private E getElement(long index) { final long offset = offset(index); return (E) UnsafeAccess.UNSAFE.getObject(buffer, offset); }
@SuppressWarnings("unchecked") private E getElement(long index) { final long offset = offset(index); return (E) UNSAFE.getObject(buffer, offset); }