< prev index next >
src/java.base/share/classes/java/nio/X-Buffer.java.template
Print this page
*** 1869,1891 ****
/**
* Returns the memory address, pointing to the byte at the given index,
* modulo the given unit size.
*
! * <p> The return value is non-negative, with {@code 0} indicating that the
! * address of the byte at the index is aligned for the unit size, and a
! * positive value that the address is misaligned for the unit size. If the
! * address of the byte at the index is misaligned, the return value
* represents how much the index should be adjusted to locate a byte at an
* aligned address. Specifically, the index should either be decremented by
! * the return value, or incremented by the unit size minus the return value.
! * Therefore given
* <blockquote><pre>
* int value = alignmentOffset(index, unitSize)</pre></blockquote>
* then the identities
* <blockquote><pre>
! * alignmentOffset(index - value, unitSize) == 0</pre></blockquote>
* and
* <blockquote><pre>
* alignmentOffset(index + (unitSize - value), unitSize) == 0</pre></blockquote>
* must hold.
*
--- 1869,1892 ----
/**
* Returns the memory address, pointing to the byte at the given index,
* modulo the given unit size.
*
! * <p> The return value is non-negative in the range of {@code 0}
! * (inclusive) up to {@code unitSize} (exclusive), with zero indicating
! * that the address of the byte at the index is aligned for the unit size,
! * and a positive value that the address is misaligned for the unit size.
! * If the address of the byte at the index is misaligned, the return value
* represents how much the index should be adjusted to locate a byte at an
* aligned address. Specifically, the index should either be decremented by
! * the return value if the latter is not greater than {@code index}, or be
! * incremented by the unit size minus the return value. Therefore given
* <blockquote><pre>
* int value = alignmentOffset(index, unitSize)</pre></blockquote>
* then the identities
* <blockquote><pre>
! * alignmentOffset(index - value, unitSize) == 0, value ≤ index</pre></blockquote>
* and
* <blockquote><pre>
* alignmentOffset(index + (unitSize - value), unitSize) == 0</pre></blockquote>
* must hold.
*
< prev index next >