diff --git a/src/classes/modules/java.base/jdk/internal/misc/Unsafe.java b/src/classes/modules/java.base/jdk/internal/misc/Unsafe.java index 04d195e0..6b28b990 100644 --- a/src/classes/modules/java.base/jdk/internal/misc/Unsafe.java +++ b/src/classes/modules/java.base/jdk/internal/misc/Unsafe.java @@ -156,10 +156,6 @@ private boolean weakCompareAndSetInt(Object object, long offset, int expected, i } public final native boolean compareAndSetLong(Object o, long offset, long expected, long x); - public final boolean compareAndSetObject(Object o, long offset, Object expected, Object x) { - return compareAndSetReference(o, offset, expected, x); - } - // those do the usual CAS magic public native boolean compareAndSwapObject(Object oThis, long offset, Object expect, Object update); @@ -196,34 +192,10 @@ public void putInt(Object obj, int offset, int i) { public native void putOrderedInt(Object obj, long l, int i); - public native Object getObject(Object obj, long l); - public native Object getObjectVolatile(Object obj, long l); - - public final Object getObjectAcquire(Object o, long offset) { - return getObjectVolatile(o, offset); - } - - @Deprecated - public Object getObject(Object obj, int offset) { - return getObject(obj, (long) offset); - } - - public final void putObject(Object o, long offset, Object x) { - putReference(o, offset, x); - } - - public final void putObjectOpaque(Object o, long offset, Object x) { - putReferenceOpaque(o, offset, x); - } + public native void putReference(Object o, long offset, Object x); - public final void putObjectRelease(Object o, long offset, Object x) { - putReferenceRelease(o, offset, x); - } - public final void putObjectVolatile(Object o, long offset, Object x) { - putReferenceVolatile(o, offset, x); - } + public native Object getReference(Object o, long offset); - public native void putReference(Object o, long offset, Object x); public final void putReferenceOpaque(Object o, long offset, Object x) { @@ -236,11 +208,12 @@ public final void putReferenceRelease(Object o, long offset, Object x) { public native void putReferenceVolatile(Object o, long offset, Object x); - @Deprecated - public void putObject(Object obj, int offset, Object obj1) { - putObject(obj, (long) offset, obj1); + public final Object getReferenceAcquire(Object o, long offset) { + return getReferenceVolatile(o, offset); } + public native Object getReferenceVolatile(Object o, long offset); + public native void putOrderedObject(Object obj, long l, Object obj1); public native boolean getBoolean(Object obj, long l); @@ -270,9 +243,6 @@ public byte getByte(Object obj, int offset) { return getByte(obj, (long) offset); } - public final Object getReferenceAcquire(Object o, long offset) { - return getObject(o,offset); - } public final native boolean compareAndSetReference(Object o, long offset, Object expected, Object x); diff --git a/src/peers/gov/nasa/jpf/vm/JPF_java_util_Random.java b/src/peers/gov/nasa/jpf/vm/JPF_java_util_Random.java index aa4666a7..63942b5d 100644 --- a/src/peers/gov/nasa/jpf/vm/JPF_java_util_Random.java +++ b/src/peers/gov/nasa/jpf/vm/JPF_java_util_Random.java @@ -21,16 +21,13 @@ import gov.nasa.jpf.ConfigChangeListener; import gov.nasa.jpf.JPFException; import gov.nasa.jpf.annotation.MJI; -import gov.nasa.jpf.vm.JPF_gov_nasa_jpf_vm_Verify; -import gov.nasa.jpf.vm.MJIEnv; -import gov.nasa.jpf.vm.NativePeer; +import jdk.internal.misc.Unsafe; +import java.lang.invoke.VarHandle; import java.lang.reflect.Field; import java.util.Random; import java.util.concurrent.atomic.AtomicLong; -import jdk.internal.misc.Unsafe; - /** * MJI NativePeer class for java.util.Random library abstraction * @@ -107,12 +104,12 @@ public void jpfRunTerminated(Config config){ } private static void setNativeSeed (Random rand, long seed) { - AtomicLong al = (AtomicLong) unsafe.getObject(rand, seedFieldOffset); + AtomicLong al = (AtomicLong) unsafe.getReference(rand, seedFieldOffset); al.set(seed); } private static long getNativeSeed (Random rand){ - AtomicLong al = (AtomicLong) unsafe.getObject(rand, seedFieldOffset); + AtomicLong al = (AtomicLong) unsafe.getReference(rand, seedFieldOffset); return al.longValue(); } diff --git a/src/peers/gov/nasa/jpf/vm/JPF_jdk_internal_misc_Unsafe.java b/src/peers/gov/nasa/jpf/vm/JPF_jdk_internal_misc_Unsafe.java index f7eadecb..e301a76e 100644 --- a/src/peers/gov/nasa/jpf/vm/JPF_jdk_internal_misc_Unsafe.java +++ b/src/peers/gov/nasa/jpf/vm/JPF_jdk_internal_misc_Unsafe.java @@ -104,7 +104,7 @@ public long objectFieldOffset__Ljava_lang_Class_2Ljava_lang_String_2__J (MJIEnv */ @MJI public boolean compareAndSetReference__Ljava_lang_Object_2JLjava_lang_Object_2Ljava_lang_Object_2__Z(MJIEnv env, int unsafeRef, int oRef, long offset, int expectedRef, int xRef) { - int actual = getObject__Ljava_lang_Object_2J__Ljava_lang_Object_2(env, unsafeRef, oRef, offset); + int actual = getReference__Ljava_lang_Object_2J__Ljava_lang_Object_2(env, unsafeRef, oRef, offset); if (actual == expectedRef) { putReference__Ljava_lang_Object_2JLjava_lang_Object_2__V(env, unsafeRef, oRef, offset, xRef); return true; @@ -156,7 +156,7 @@ public boolean compareAndSetLong__Ljava_lang_Object_2JJJ__Z (MJIEnv env, int uns public boolean compareAndSwapObject__Ljava_lang_Object_2JLjava_lang_Object_2Ljava_lang_Object_2__Z (MJIEnv env, int unsafeRef, int objRef, long fieldOffset, int expectRef, int updateRef) { - int actual = getObject__Ljava_lang_Object_2J__Ljava_lang_Object_2(env, unsafeRef, objRef, fieldOffset); + int actual = getReference__Ljava_lang_Object_2J__Ljava_lang_Object_2(env, unsafeRef, objRef, fieldOffset); if (actual == expectRef) { putReference__Ljava_lang_Object_2JLjava_lang_Object_2__V(env, unsafeRef, objRef, fieldOffset, updateRef); return true; @@ -281,7 +281,7 @@ public void ensureClassInitialized__Ljava_lang_Class_2__V (MJIEnv env, int unsaf } @MJI - public int getObject__Ljava_lang_Object_2J__Ljava_lang_Object_2 (MJIEnv env, int unsafeRef, + public int getReference__Ljava_lang_Object_2J__Ljava_lang_Object_2 (MJIEnv env, int unsafeRef, int objRef, long fieldOffset) { ElementInfo ei = env.getElementInfo(objRef); if (!ei.isArray()) { @@ -293,9 +293,9 @@ public int getObject__Ljava_lang_Object_2J__Ljava_lang_Object_2 (MJIEnv env, int } @MJI - public int getObjectVolatile__Ljava_lang_Object_2J__Ljava_lang_Object_2 (MJIEnv env, int unsafeRef, + public int getReferenceVolatile__Ljava_lang_Object_2J__Ljava_lang_Object_2 (MJIEnv env, int unsafeRef, int objRef, long fieldOffset) { - return getObject__Ljava_lang_Object_2J__Ljava_lang_Object_2( env, unsafeRef, objRef, fieldOffset); + return getReference__Ljava_lang_Object_2J__Ljava_lang_Object_2( env, unsafeRef, objRef, fieldOffset); } @MJI