corda/classpath/sun/misc/Unsafe.java
Joel Dice 4e12847858 code rearrangment to improve state of Android libcore tests
This mainly moves several sun.misc.Unsafe method implementations from
classpath-openjdk.cpp to builtin.cpp so that the Avian and Android
builds can use them.

It also replaces FinalizerReference.finalizeAllEnqueued with a no-op,
since the real implementations assumes too much about how the VM
handles (or delegates) finalization.
2013-04-23 13:47:15 -06:00

83 lines
2.2 KiB
Java

package sun.misc;
import java.lang.reflect.Field;
public final class Unsafe {
private void Unsafe() { }
private static final Unsafe Instance = new Unsafe();
public static Unsafe getUnsafe() {
return Instance;
}
public native long allocateMemory(long bytes);
public native void setMemory
(Object base, long offset, long count, byte value);
public native void freeMemory(long address);
public native byte getByte(long address);
public native void putByte(long address, byte x);
public native short getShort(long address);
public native void putShort(long address, short x);
public native char getChar(long address);
public native void putChar(long address, char x);
public native int getInt(long address);
public native void putInt(long address, int x);
public native long getLong(long address);
public native void putLong(long address, long x);
public native float getFloat(long address);
public native void putFloat(long address, float x);
public native double getDouble(long address);
public native void putDouble(long address, double x);
public native void putIntVolatile(Object o, long offset, int x);
public native void putOrderedInt(Object o, long offset, int x);
public native Object getObject(Object o, long offset);
public native void putObject(Object o, long offset, Object x);
public native long getAddress(long address);
public native void putAddress(long address, long x);
public native int arrayBaseOffset(Class arrayClass);
public native long objectFieldOffset(Field field);
public native void park(boolean absolute, long time);
public native void unpark(Object target);
public native void copyMemory(Object srcBase, long srcOffset,
Object destBase, long destOffset,
long count);
public native boolean compareAndSwapInt(Object o, long offset, int old,
int new_);
public native boolean compareAndSwapObject(Object o, long offset, Object old,
Object new_);
public void copyMemory(long src, long dst, long count) {
copyMemory(null, src, null, dst, count);
}
}