On Tue, 14 Oct 2025 03:29:00 GMT, Phil Race <[email protected]> wrote:
> ByteInterleavedRaster is not including the DataBuffer offset in returns from
> getDataElements
> The super-class sets it in the constructor which runs very much like this
> subclass except it omits this.
> The parent class of ByteInterleavedRaster is ByteComponentRaster and it uses
> the DataBuffer offset
> to adjust dataOffsets values used in all calculations.
>
> Instead ByteInterleavedRaster does something a bit different than other
> classes where it includes it in some instance vars
> that also have additional offsets that apply for getPixels and getSamples but
> aren't used in getDataElements.
>
> It looks to me as if this is what ByteInterleavedRaster should also do
> instead.
> All existing tests pass, and this resolves the specific complaint in the bug
> report.
test/jdk/java/awt/image/ByteInterleavedRasterOffsetsTest.java line 48:
> 46: Raster.createInterleavedRaster(databuf, 1, 1, 3, 3,
> bandOffsets, null);
> 47: int[] pixels = raster.getPixels(0, 0, 1, 1, (int[])null);
> 48: byte[] elements = (byte[])raster.getDataElements(0, 0,null);
Suggestion:
byte[] elements = (byte[])raster.getDataElements(0, 0, null);
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27782#discussion_r2431635679