Aligned long views over byte arrays and heap ByteBuffers

Paul Sandoz paul.sandoz at oracle.com
Fri Jan 15 16:41:43 UTC 2016


> On 15 Jan 2016, at 17:34, John Rose <john.r.rose at oracle.com> wrote:
> 
> On Jan 15, 2016, at 4:47 AM, Paul Sandoz <paul.sandoz at oracle.com <mailto:paul.sandoz at oracle.com>> wrote:
>> 
>> For the JDK implementation when a new DDB is allocated the address is guaranteed to be aligned (see Unsafe.allocateMemory), and the implementation takes advantage of that when viewing a DBB as a LongBuffer.
> 
> …Also, the JNI entry point NewDirectByteBuffer uses the address as-is, which is a feature not a bug.
> 
>     // Invoked only by JNI: NewDirectByteBuffer(void*, long)
>     //
>     private Direct$Type$Buffer(long addr, int cap) {
>         super(-1, 0, cap, cap);
>         address = addr;
>         cleaner = null;
>         att = null;
>     }
> 

Thanks (and to Duncan too), i was not aware of that constructor.

Paul.



More information about the valhalla-dev mailing list