# HG changeset patch # User igerasim # Date 1425465858 -10800 # Node ID cb2fb204a82bf8e55bcc0a5aa1036b727779142e # Parent 5a9ac0be6ff7c96dfdd69f7eaedb1b53543cbcba 8074067: (bf) Re-examine java.base/share/native/libjava/Bits.c Reviewed-by: alanb, martin diff -r 5a9ac0be6ff7 -r cb2fb204a82b jdk/src/java.base/share/native/libjava/Bits.c --- a/jdk/src/java.base/share/native/libjava/Bits.c Wed Mar 04 16:26:49 2015 +0800 +++ b/jdk/src/java.base/share/native/libjava/Bits.c Wed Mar 04 13:44:18 2015 +0300 @@ -31,24 +31,6 @@ #include "jlong.h" #include -/* - * WARNING: - * - * Do not replace instances of: - * - * if (length > MBYTE) - * size = MBYTE; - * else - * size = length; - * - * with - * - * size = (length > MBYTE ? MBYTE : length); - * - * This expression causes a c compiler assertion failure when compiling on - * 32-bit sparc. - */ - #define MBYTE 1048576 #define GETCRITICAL_OR_RETURN(bytes, env, obj) { \ @@ -71,7 +53,7 @@ ((jlong)SWAPINT((jint)((x) >> 32)) & 0xffffffff))) JNIEXPORT void JNICALL -Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jobject this, jobject src, +Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jclass clazz, jobject src, jlong srcPos, jlong dstAddr, jlong length) { jbyte *bytes; @@ -82,11 +64,7 @@ dstShort = (jshort *)jlong_to_ptr(dstAddr); while (length > 0) { - /* do not change this if-else statement, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, src); @@ -100,13 +78,12 @@ RELEASECRITICAL(bytes, env, src, JNI_ABORT); length -= size; - dstAddr += size; srcPos += size; } } JNIEXPORT void JNICALL -Java_java_nio_Bits_copyToShortArray(JNIEnv *env, jobject this, jlong srcAddr, +Java_java_nio_Bits_copyToShortArray(JNIEnv *env, jclass clazz, jlong srcAddr, jobject dst, jlong dstPos, jlong length) { jbyte *bytes; @@ -117,11 +94,7 @@ srcShort = (jshort *)jlong_to_ptr(srcAddr); while (length > 0) { - /* do not change this if-else statement, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, dst); @@ -135,13 +108,12 @@ RELEASECRITICAL(bytes, env, dst, 0); length -= size; - srcAddr += size; dstPos += size; } } JNIEXPORT void JNICALL -Java_java_nio_Bits_copyFromIntArray(JNIEnv *env, jobject this, jobject src, +Java_java_nio_Bits_copyFromIntArray(JNIEnv *env, jclass clazz, jobject src, jlong srcPos, jlong dstAddr, jlong length) { jbyte *bytes; @@ -152,11 +124,7 @@ dstInt = (jint *)jlong_to_ptr(dstAddr); while (length > 0) { - /* do not change this code, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, src); @@ -170,13 +138,12 @@ RELEASECRITICAL(bytes, env, src, JNI_ABORT); length -= size; - dstAddr += size; srcPos += size; } } JNIEXPORT void JNICALL -Java_java_nio_Bits_copyToIntArray(JNIEnv *env, jobject this, jlong srcAddr, +Java_java_nio_Bits_copyToIntArray(JNIEnv *env, jclass clazz, jlong srcAddr, jobject dst, jlong dstPos, jlong length) { jbyte *bytes; @@ -187,11 +154,7 @@ srcInt = (jint *)jlong_to_ptr(srcAddr); while (length > 0) { - /* do not change this code, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, dst); @@ -205,13 +168,12 @@ RELEASECRITICAL(bytes, env, dst, 0); length -= size; - srcAddr += size; dstPos += size; } } JNIEXPORT void JNICALL -Java_java_nio_Bits_copyFromLongArray(JNIEnv *env, jobject this, jobject src, +Java_java_nio_Bits_copyFromLongArray(JNIEnv *env, jclass clazz, jobject src, jlong srcPos, jlong dstAddr, jlong length) { jbyte *bytes; @@ -222,11 +184,7 @@ dstLong = (jlong *)jlong_to_ptr(dstAddr); while (length > 0) { - /* do not change this code, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, src); @@ -240,13 +198,12 @@ RELEASECRITICAL(bytes, env, src, JNI_ABORT); length -= size; - dstAddr += size; srcPos += size; } } JNIEXPORT void JNICALL -Java_java_nio_Bits_copyToLongArray(JNIEnv *env, jobject this, jlong srcAddr, +Java_java_nio_Bits_copyToLongArray(JNIEnv *env, jclass clazz, jlong srcAddr, jobject dst, jlong dstPos, jlong length) { jbyte *bytes; @@ -257,11 +214,7 @@ srcLong = (jlong *)jlong_to_ptr(srcAddr); while (length > 0) { - /* do not change this code, see WARNING above */ - if (length > MBYTE) - size = MBYTE; - else - size = (size_t)length; + size = (length < MBYTE) ? (size_t)length : (size_t)MBYTE; GETCRITICAL_OR_RETURN(bytes, env, dst); @@ -275,7 +228,6 @@ RELEASECRITICAL(bytes, env, dst, 0); length -= size; - srcAddr += size; dstPos += size; } }