jdk/src/share/native/java/nio/Bits.c
changeset 1151 4070cecdb99d
parent 895 67f1dc69ad10
child 1247 b4c26443dee5
equal deleted inserted replaced
1149:1e32392ecafa 1151:4070cecdb99d
    66                             (SWAPSHORT((jshort)((x) >> 16)) & 0xffff)))
    66                             (SWAPSHORT((jshort)((x) >> 16)) & 0xffff)))
    67 #define SWAPLONG(x)  ((jlong)(((jlong)SWAPINT((jint)(x)) << 32) | \
    67 #define SWAPLONG(x)  ((jlong)(((jlong)SWAPINT((jint)(x)) << 32) | \
    68                               ((jlong)SWAPINT((jint)((x) >> 32)) & 0xffffffff)))
    68                               ((jlong)SWAPINT((jint)((x) >> 32)) & 0xffffffff)))
    69 
    69 
    70 JNIEXPORT void JNICALL
    70 JNIEXPORT void JNICALL
    71 Java_java_nio_Bits_copyFromByteArray(JNIEnv *env, jobject this, jobject src,
       
    72                                      jlong srcPos, jlong dstAddr, jlong length)
       
    73 {
       
    74     jbyte *bytes;
       
    75     size_t size;
       
    76 
       
    77     while (length > 0) {
       
    78         size = (length > MBYTE ? MBYTE : length);
       
    79 
       
    80         GETCRITICAL(bytes, env, src);
       
    81         memcpy((void *)dstAddr, bytes + srcPos, size);
       
    82         RELEASECRITICAL(bytes, env, src, JNI_ABORT);
       
    83 
       
    84         length -= size;
       
    85         dstAddr += size;
       
    86         srcPos += size;
       
    87     }
       
    88 }
       
    89 
       
    90 JNIEXPORT void JNICALL
       
    91 Java_java_nio_Bits_copyToByteArray(JNIEnv *env, jobject this, jlong srcAddr,
       
    92                                    jobject dst, jlong dstPos, jlong length)
       
    93 {
       
    94     jbyte *bytes;
       
    95     size_t size;
       
    96 
       
    97     while (length > 0) {
       
    98         size = (length > MBYTE ? MBYTE : length);
       
    99 
       
   100         GETCRITICAL(bytes, env, dst);
       
   101         memcpy(bytes + dstPos, (void *)srcAddr, size);
       
   102         RELEASECRITICAL(bytes, env, dst, 0);
       
   103 
       
   104         length -= size;
       
   105         srcAddr += size;
       
   106         dstPos += size;
       
   107     }
       
   108 }
       
   109 
       
   110 JNIEXPORT void JNICALL
       
   111 Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jobject this, jobject src,
    71 Java_java_nio_Bits_copyFromShortArray(JNIEnv *env, jobject this, jobject src,
   112                                       jlong srcPos, jlong dstAddr, jlong length)
    72                                       jlong srcPos, jlong dstAddr, jlong length)
   113 {
    73 {
   114     jbyte *bytes;
    74     jbyte *bytes;
   115     size_t i, size;
    75     size_t i, size;