On 07/Sep/2009 09:33, Regis wrote:
> I managed to implement in this way and submit a patch to JIRA.
> 
> I tried to pass a object array, if it's direct buffer, fill the array
> element with buffer directly (heap byte buffer without an array will be
> copied to direct buffer first), otherwise, pass byte array. Because we
> still need to know the offset of arrays, so I have to pass it to native
> code.

Thanks Regis.

Looking at the patch "HARMONY-6328.v3.diff",

(1) This test is checking it is an instance of java.nio.ByteBuffer, but
it should be checking for instances of java.nio.DirectByteBuffer, right?

isDirectBuffer = (*env)->IsInstanceOf(env, buffer, byteBufferClass);

(2) Not sure if any JNI implementations will care, but AIUI you only
should call ReleaseByteArrayElements if you got a copy of the array
(i.e. as indicated by the GetByteArrayElements).


I didn't study the SocketChannelImpl too closely, but it looks better
now :-)  If you agree with (at leat) (1) above then we should apply the
patch and do some comparisons!

Regards,
Tim

Reply via email to