Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.6
-
None
-
None
Description
Right now the code does something like yay so:
return ByteBuffer.wrap(array, pos, len);
The only problem is that .wrap(byte[],int,int) returns a ByteBuffer with position equal to pos and limit set to pos+len. Which means users cant used 'rewind' or position(0).
It would be cleaner if the contract was "ByteBuffers will have position=0, limit=how much data you have".
The way to accomplish this would be to:
return ByteBuffer.wrap(array, pos, len).slice();
In exchange for 1 extra object alloc (which the GC can clean up quick) we get the benefit of a easier to use BB interface.