In JDK 9 the native code for the robot class was reworked to get an access to 
the HiDPI quality screenshots. So we allocate the data storage for the HiDPI 
quality and then request the best quality from the macOS.

It works fine if the user request the screenshot of some area, since we 
properly scale this area. Unfortunately it does not work well if the user 
request only one pixel, in this case we allocate the array of one element and 
does not multiply the size by the scale, so if the system scale is 2 then the 
macOS returns the 2x2 pixels, which does not fit properly to the array of one 
element. This can be checked by the Xcheck:jni option which produce fatal error 
in this case.

Solution is to allocate the storage of the proper size 1 * scale * 1 * scale

-------------

Commit messages:
 - Initial fix JDK-8274939

Changes: https://git.openjdk.java.net/jdk/pull/5864/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5864&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8274939
  Stats: 6 lines in 2 files changed: 2 ins; 0 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5864.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5864/head:pull/5864

PR: https://git.openjdk.java.net/jdk/pull/5864

Reply via email to