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

Reply via email to