0. unshuffled all patches from jdk/jdk (14) to 8 format 1. Reviews: Compare files: - marlin-zulu/mXX.XXXXXXX.patch - marlin-jdk/jdk8-patches/8-mXX.XXXXXXX.patch for the bug id (zulu code base vs jdk/jdk (to 8) format ---------------------------- 1. m01.8143849.patch Review: ---------------------------- Output: OK (see webrevs/m01.diff) Status: Approved Comments: m01.8143849.patch + merge with marlin changes only from m01b.8149896.patch FloatMath.java: - removed powerOfTwoD(int n) as done in m01b.8149896.patch MarlinCache.java: MarlinTileGenerator.java: import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe; MarlinUtils: import jdk.internal.misc.JavaLangAccess; => import sun.misc.JavaLangAccess; import jdk.internal.misc.SharedSecrets; => import sun.misc.SharedSecrets; OffHeapArray.java: import sun.awt.util.ThreadGroupUtils; => import sun.misc.ThreadGroupUtils; import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe; Renderer.java: import jdk.internal.misc.Unsafe; => import sun.misc.Unsafe; - line change from m01b.8149896.patch: private static final double POWER_2_TO_32 = FloatMath.powerOfTwoD(32); => private static final double POWER_2_TO_32 = 0x1.0p32; RenderingEngine.java: - Many lines changes to fix JDK8 ServiceLoader to use MarlinRenderingEngine by default: AccessController.doPrivileged(new PrivilegedAction() { public RenderingEngine run() { final String ductusREClass = "sun.dc.DuctusRenderingEngine"; - String reClass = - System.getProperty("sun.java2d.renderer", ductusREClass); - if (reClass.equals(ductusREClass)) { + final String marlinREClass = "sun.java2d.marlin.MarlinRenderingEngine"; + + String reClass = System.getProperty("sun.java2d.renderer"); + if (reClass == null || reClass.equals(ductusREClass)) { try { Class cls = Class.forName(ductusREClass); return (RenderingEngine) cls.newInstance(); @@ -133,17 +134,27 @@ } ServiceLoader reLoader = - ServiceLoader.loadInstalled(RenderingEngine.class); + ServiceLoader.loadInstalled(RenderingEngine.class); RenderingEngine service = null; + RenderingEngine marlinService = null; for (RenderingEngine re : reLoader) { service = re; - if (re.getClass().getName().equals(reClass)) { - break; + String serviceName = re.getClass().getName(); + if (serviceName.equals(reClass)) { + return service; + } + if (serviceName.equals(marlinREClass)) { + marlinService = service; } } - return service; + // use Marlin as default renderer + if (marlinService != null) { + return marlinService; + } else { + return service; + } } }); - Add MarlinRenderingEngine in sun.java2d.pipe.RenderingEngine property files: src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine +# Marlin Rendering Engine module +sun.java2d.marlin.MarlinRenderingEngine src/solaris/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine +# Marlin Rendering Engine module +sun.java2d.marlin.MarlinRenderingEngine ---------------------------- 2. m02.8145055.patch Review: ---------------------------- Output: OK (see webrevs/m02.diff) Status: Approved Comments: Same patch ---------------------------- 3. m03.8144630.patch Review: ---------------------------- Output: OK (see webrevs/m03.diff) Status: Approved Comments: RendererStats.java: import sun.awt.util.ThreadGroupUtils; => import sun.misc.ThreadGroupUtils; Identation issues in diff => same ---------------------------- 4. m04.8144446.patch Review: ---------------------------- Output: OK (see webrevs/m04.diff: only changes from m01) Status: Approved Comments: Same patch ---------------------------- 5. m05.8144445.patch Review: ---------------------------- Output: OK (see webrevs/m05.diff: none) Status: Approved Comments: Same patch ---------------------------- 6. m06.8144526.patch Review: ---------------------------- Output: Not checked (only diff provided by email) Status: Approved Comments: MarlinUtils.java: import jdk.internal.misc.JavaLangAccess; => import sun.misc.JavaLangAccess; import jdk.internal.misc.SharedSecrets; => import sun.misc.SharedSecrets; ---------------------------- 7. m07.8144654.patch Review: ---------------------------- Output: OK (see webrevs/m07.diff: 1 nit on doCheckUnsafe ?) Status: Approved Comments: Same patch ---------------------------- 8. m08.8144718.patch Review: ---------------------------- Output: OK (see webrevs/m08.diff: none) Status: Approved Comments: Same patch ---------------------------- 9. m09.8149338.patch Review: ---------------------------- Identation issues in diff => same ---------------------------- 10. m10.8148886.patch Review: ---------------------------- Fix 2 conflicts with (skipped patch 8147443: Use the Common Cleaner in Marlin OffHeapArray) RendererContext.java: Remove lines{ // Smallest object used as Cleaner's parent reference final Object cleanerObj = new Object(); } Version.java: marlin-0.7.3-Unsafe-OpenJDK => marlin-0.7.2 ---------------------------- 11. m11.8144938.patch Review: ---------------------------- CrashNaNTest.java : diff looks different but raw/new files are the same + patched output files are the same. OK ---------------------------- 12. m12.8159093.patch Review: ---------------------------- OffHeapArray: diff are different on before / after sections (no Cleaner + reference processing) RendererContext.java: fix chunks (lines) only OK ---------------------------- 13. m13.8159638.patch Review: ---------------------------- Lot of diff (chunks): compare raw/new files directly ByteArrayCache: FloatArrayCache: IntArrayCache: jdk9: static byte[] createArray(final int length, final boolean clean) { if (clean) { return new byte[length]; } // use JDK9 Unsafe.allocateUninitializedArray(class, length): return (byte[]) OffHeapArray.UNSAFE.allocateUninitializedArray(byte.class, length); } jdk8: static byte[] createArray(final int length, final boolean clean) { //if (clean) { return new byte[length]; //} // use JDK9 Unsafe.allocateUninitializedArray(class, length): //return (byte[]) OffHeapArray.UNSAFE.allocateUninitializedArray(byte.class, length); } OK as allocateUninitializedArray is JDK9 only RendererStats: fix chunks (lines) only OK ---------------------------- 14. m14.8180055.patch Review: ---------------------------- TODO: many chunk difference (AATileGenerator) TODO: compare patched files Look good: finalize review ---------------------------- 15. m15.8191814 Review: ---------------------------- TODO: some chunk difference TODO: compare patched files MEDIUM ---------------------------- 16. m16.8198885 Review: ---------------------------- TODO: many chunk difference TODO: compare patched files HARD ---------------------------- 17. m17.8200526 Review: ---------------------------- Same patch ---------------------------- 18. m18.8202580 Review: ---------------------------- Same patch ---------------------------- 19. m19.8210335 Review: ---------------------------- Same patch ---------------------------- 20. m20.8180055 Review: ---------------------------- Status: Skipped because merged with m14.8180055.patch at EOF Comments: src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine # Marlin Rendering Engine module sun.java2d.marlin.MarlinRenderingEngine +sun.java2d.marlin.DMarlinRenderingEngine src/solaris/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine # Marlin Rendering Engine module sun.java2d.marlin.MarlinRenderingEngine +sun.java2d.marlin.DMarlinRenderingEngine ---------------------------- 20. 8-m20.8228711 Review: ---------------------------- Status: Approved, applies cleanly Comments: New backport: 8-m20.8228711.patch patching file src/share/classes/sun/java2d/marlin/DDasher.java patching file src/share/classes/sun/java2d/marlin/DHelpers.java patching file src/share/classes/sun/java2d/marlin/DStroker.java patching file src/share/classes/sun/java2d/marlin/DTransformingPathConsumer2D.java patching file src/share/classes/sun/java2d/marlin/Dasher.java patching file src/share/classes/sun/java2d/marlin/Helpers.java patching file src/share/classes/sun/java2d/marlin/Stroker.java patching file src/share/classes/sun/java2d/marlin/TransformingPathConsumer2D.java patching file src/share/classes/sun/java2d/marlin/Version.java patching file test/sun/java2d/marlin/ClipShapeTest.java ---------------------------- 21. 8-m21.8230728 Review: ---------------------------- Status: Approved, applies cleanly Comments: New backport: 8-m21.8230728.patch patching file src/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java patching file src/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java patching file src/share/classes/sun/java2d/marlin/Version.java patching file test/sun/java2d/marlin/FlipBitTest.java --- EOF ---