The [next PR](https://github.com/openjdk/jdk/pull/23044) introduces several new methods to the ICC_Profile class: - getProfileClass(byte[]) - getColorSpaceType(byte[]) - getPCSType(byte[]) - checkRenderingIntent(byte[])
These new methods extract data directly from the provided byte array rather than relying on the profile instance. The first three methods essentially duplicate the existing ones (getProfileClass(), getColorSpaceType(), getPCSType()). It is possible to update implementation: - The existing methods getColorSpaceType() and getPCSType() could delegate to the new getColorSpaceType(byte[]) and getPCSType(byte[]) methods. - The checkRenderingIntent(byte[]) method could be updated to report the actual invalid intent value when an error occurs Tests: - Old ValidateICCHeaderData test is update to verify the new output of the checkRenderingIntent - New RenderingIntentStressTest test is added to check the next part of the icc_spec: * ICC spec: only the least-significant 16 bits encode the rendering * intent. The most significant 16 bits must be zero and can be ignored. * See https://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15. @honkar-jdk please take a look. Note: There is currently an inconsistency in the usage of `getData(icSigHead)` vs `getData(cmmProfile(), icSigHead)` throughout the codebase. I plan to address this separately. ------------- Commit messages: - Create RenderingIntentStressTest.java - Update getColorSpaceType and getPCSType - Update checkRenderingIntent Changes: https://git.openjdk.org/jdk/pull/25519/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25519&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8358057 Stats: 141 lines in 3 files changed: 112 ins; 12 del; 17 mod Patch: https://git.openjdk.org/jdk/pull/25519.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/25519/head:pull/25519 PR: https://git.openjdk.org/jdk/pull/25519