if (buffersSize == 0 || (position == limit)) {
return array;
} else if (buffersSize == 1) {
final Buffer b = buffers[0];
final int startPos = b.position();
return b.toByteBufferArray(array, position + startPos,
limit + startPos);
} else if (position == 0 && limit == capacity) {
for (int i = 0; i < buffersSize; i++) {
buffers[i].toByteBufferArray(array);