On 03/11/2015 06:27 PM, Andrew Haley wrote:
On 03/11/2015 07:10 AM, John Rose wrote:
John: I'm waiting for an answer to my question here before I submit
a webrev for approval.
http://mail.openjdk.java.net/pipermail/panama-dev/2015-March/000099.html
(Answered.)
http://cr.openjdk.java.net/~aph/unaligned.jdk.5/
http://cr.openjdk.java.net/~aph/unaligned.hotspot.5/
I hope everybody is happy with this, or at least not so unhappy that
they would want to reject it altogether.
There is no bug ID for this yet. John, would you like to create a bug
database entry? If not, I'll do so. Then I can go for a RFR, which
hopefully should be a shoo-in now that we've beaten this thing to
death. :-)
Andrew.
Hi Andrew,
Just an observation. In Heap-X-Buffer.java.template, you are using
self-sufficient form of methods for integral types:
377 public int getInt() {
378 return unsafe.getIntUnaligned(hb,
byteOffset(nextGetIndex(4)), bigEndian);
379 }
380
381 public int getInt(int i) {
382 return unsafe.getIntUnaligned(hb, byteOffset(checkIndex(i,
4)), bigEndian);
383 }
...but for floating point, you use:
479 public float getFloat() {
480 return getFloat(nextGetIndex(4));
481 }
482
483 public float getFloat(int i) {
484 int x = unsafe.getIntUnaligned(hb,
byteOffset(checkIndex(i, 4)), bigEndian);
485 return Float.intBitsToFloat(x);
486 }
...getFloat() is calling getFloat(int) which is a virtual method with 2
implementations. I think it would be better to in-line the the call and
eliminate the need to execute checkIndex()...
Regards, Peter