From 48e1fa7fe2caaf6240d24e7bb85e1a3b1d23d2b5 Mon Sep 17 00:00:00 2001 From: Stefan Ring Date: Thu, 11 Nov 2010 07:49:43 +0100 Subject: [PATCH] IcedTea/PR585 * src/native/vm/sun_misc_Unsafe.cpp: Implemented missing methods putBooleanVolatile, putByteVolatile, putShortVolatile, putCharVolatile, putFloatVolatile, putDoubleVolatile. --- src/native/vm/sun_misc_Unsafe.cpp | 72 +++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/src/native/vm/sun_misc_Unsafe.cpp b/src/native/vm/sun_misc_Unsafe.cpp index 92c68e4e1..e17e68fbc 100644 --- a/src/native/vm/sun_misc_Unsafe.cpp +++ b/src/native/vm/sun_misc_Unsafe.cpp @@ -1011,6 +1011,17 @@ JNIEXPORT jboolean JNICALL Java_sun_misc_Unsafe_getBooleanVolatile(JNIEnv* env, } +/* + * Class: sun/misc/Unsafe + * Method: putBooleanVolatile + * Signature: (Ljava/lang/Object;JZ)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putBooleanVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jboolean x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: getByteVolatile @@ -1022,6 +1033,17 @@ JNIEXPORT jbyte JNICALL Java_sun_misc_Unsafe_getByteVolatile(JNIEnv* env, jobjec } +/* + * Class: sun/misc/Unsafe + * Method: putByteVolatile + * Signature: (Ljava/lang/Object;JB)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putByteVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jbyte x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: getShortVolatile @@ -1033,6 +1055,17 @@ JNIEXPORT jshort JNICALL Java_sun_misc_Unsafe_getShortVolatile(JNIEnv* env, jobj } +/* + * Class: sun/misc/Unsafe + * Method: putShortVolatile + * Signature: (Ljava/lang/Object;JS)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putShortVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jshort x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: getCharVolatile @@ -1044,6 +1077,17 @@ JNIEXPORT jchar JNICALL Java_sun_misc_Unsafe_getCharVolatile(JNIEnv* env, jobjec } +/* + * Class: sun/misc/Unsafe + * Method: putCharVolatile + * Signature: (Ljava/lang/Object;JC)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putCharVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jchar x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: getIntVolatile @@ -1099,6 +1143,17 @@ JNIEXPORT jfloat JNICALL Java_sun_misc_Unsafe_getFloatVolatile(JNIEnv* env, jobj } +/* + * Class: sun/misc/Unsafe + * Method: putFloatVolatile + * Signature: (Ljava/lang/Object;JF)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putFloatVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jfloat x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: getDoubleVolatile @@ -1110,6 +1165,17 @@ JNIEXPORT jdouble JNICALL Java_sun_misc_Unsafe_getDoubleVolatile(JNIEnv *env, jo } +/* + * Class: sun/misc/Unsafe + * Method: putDoubleVolatile + * Signature: (Ljava/lang/Object;JD)V + */ +JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putDoubleVolatile (JNIEnv *env, jobject _this, jobject o, jlong offset, jdouble x) +{ + FieldAccess::set_volatile(o, offset, x); +} + + /* * Class: sun/misc/Unsafe * Method: putOrderedObject @@ -1266,15 +1332,21 @@ static JNINativeMethod methods[] = { { (char*) "getObjectVolatile", (char*) "(Ljava/lang/Object;J)Ljava/lang/Object;", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getObjectVolatile }, { (char*) "putObjectVolatile", (char*) "(Ljava/lang/Object;JLjava/lang/Object;)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putObjectVolatile }, { (char*) "getBooleanVolatile", (char*) "(Ljava/lang/Object;J)Z", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getBooleanVolatile }, + { (char*) "putBooleanVolatile", (char*) "(Ljava/lang/Object;JZ)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putBooleanVolatile }, { (char*) "getByteVolatile", (char*) "(Ljava/lang/Object;J)B", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getByteVolatile }, + { (char*) "putByteVolatile", (char*) "(Ljava/lang/Object;JB)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putByteVolatile }, { (char*) "getShortVolatile", (char*) "(Ljava/lang/Object;J)S", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getShortVolatile }, + { (char*) "putShortVolatile", (char*) "(Ljava/lang/Object;JS)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putShortVolatile }, { (char*) "getCharVolatile", (char*) "(Ljava/lang/Object;J)C", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getCharVolatile }, + { (char*) "putCharVolatile", (char*) "(Ljava/lang/Object;JC)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putCharVolatile }, { (char*) "getIntVolatile", (char*) "(Ljava/lang/Object;J)I", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getIntVolatile }, { (char*) "putIntVolatile", (char*) "(Ljava/lang/Object;JI)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putIntVolatile }, { (char*) "getLongVolatile", (char*) "(Ljava/lang/Object;J)J", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getLongVolatile }, { (char*) "putLongVolatile", (char*) "(Ljava/lang/Object;JJ)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putLongVolatile }, { (char*) "getFloatVolatile", (char*) "(Ljava/lang/Object;J)F", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getFloatVolatile }, + { (char*) "putFloatVolatile", (char*) "(Ljava/lang/Object;JF)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putFloatVolatile }, { (char*) "getDoubleVolatile", (char*) "(Ljava/lang/Object;J)D", (void*) (uintptr_t) &Java_sun_misc_Unsafe_getDoubleVolatile }, + { (char*) "putDoubleVolatile", (char*) "(Ljava/lang/Object;JD)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putDoubleVolatile }, { (char*) "putOrderedObject", (char*) "(Ljava/lang/Object;JLjava/lang/Object;)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putOrderedObject }, { (char*) "putOrderedInt", (char*) "(Ljava/lang/Object;JI)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putOrderedInt }, { (char*) "putOrderedLong", (char*) "(Ljava/lang/Object;JJ)V", (void*) (uintptr_t) &Java_sun_misc_Unsafe_putOrderedLong }, -- 2.25.1