changeset 1192:cb1f68e8019a

Merge with trunk.
author Mark Wielaard <mark@klomp.org>
date Fri, 07 Nov 2008 13:54:54 +0100
parents bddf55be4f36 (current diff) 7175ea5857e4 (diff)
children 26c630b5f91d
files ChangeLog HACKING Makefile.am
diffstat 4 files changed, 57 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Nov 07 06:50:49 2008 -0500
+++ b/ChangeLog	Fri Nov 07 13:54:54 2008 +0100
@@ -1,3 +1,9 @@
+2008-10-29  Mark Wielaard  <mark@klomp.org>
+
+	* patches/icedtea-6761856-freetypescaler.patch: New patch.
+	* Makefile.am (ICEDTEA_PATCHES): Add new patch.
+	* HACKING: Document new patch.
+
 2008-11-07  Gary Benson  <gbenson@redhat.com>
 
 	* patches/icedtea-cc-interp-no-fer.patch: New file.
--- a/HACKING	Fri Nov 07 06:50:49 2008 -0500
+++ b/HACKING	Fri Nov 07 13:54:54 2008 +0100
@@ -65,6 +65,8 @@
 * icedtea-renderer-crossing.patch: Check whether crossing is initialized in Pisces Renderer.
 * icedtea-f2i-overflow.patch: Replaces the code used by [fd]2[il] bytecodes to correctly handle overflows. (PR244)
 * icedtea-cc-interp-no-fer.patch: Report that we cannot force early returns with the C++ interpreter.
+* icedtea-6761856-freetypescaler.patch: Fix IcedTea bug #227, OpenJDK bug
+  #6761856, swing TextLayout.getBounds() returns shifted bounds.
 
 The following patches are only applied to OpenJDK6 in IcedTea6:
 
--- a/Makefile.am	Fri Nov 07 06:50:49 2008 -0500
+++ b/Makefile.am	Fri Nov 07 13:54:54 2008 +0100
@@ -536,7 +536,8 @@
 	patches/icedtea-alsa-default-device.patch \
 	patches/icedtea-linker-libs-order.patch \
 	patches/icedtea-f2i-overflow.patch \
-	patches/icedtea-cc-interp-no-fer.patch
+	patches/icedtea-cc-interp-no-fer.patch \
+	patches/icedtea-6761856-freetypescaler.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/icedtea-6761856-freetypescaler.patch	Fri Nov 07 13:54:54 2008 +0100
@@ -0,0 +1,47 @@
+# User igor
+# Date 1225234342 -10800
+# Node ID 9cdababf6179bd03270d881740fbb5dcc405854f
+# Parent 594c52582b21063bdbc36b38d9f73a3c46abe041
+6761856: OpenJDK: vertical text metrics may be significanly different from those returned by Sun JDK
+Reviewed-by: bae, prr
+
+--- openjdk.orig/jdk/src/share/native/sun/font/freetypeScaler.c	Tue Oct 28 14:47:14 2008 -0700
++++ openjdk/jdk/src/share/native/sun/font/freetypeScaler.c	Wed Oct 29 01:52:22 2008 +0300
+@@ -1281,7 +1281,7 @@ Java_sun_font_FreetypeFontScaler_getGlyp
+                                    sunFontIDs.rect2DFloatClass,
+                                    sunFontIDs.rect2DFloatCtr4,
+                                    F26Dot6ToFloat(bbox.xMin),
+-                                   F26Dot6ToFloat(bbox.yMax),
++                                   F26Dot6ToFloat(-bbox.yMax),
+                                    F26Dot6ToFloat(bbox.xMax-bbox.xMin),
+                                    F26Dot6ToFloat(bbox.yMax-bbox.yMin));
+     }
+--- openjdk.orig/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java	Tue Oct 28 14:47:14 2008 -0700
++++ openjdk/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java	Wed Oct 29 01:52:22 2008 +0300
+@@ -22,7 +22,7 @@
+  */
+ /* @test
+  * @summary verify TextLayout.getBounds() return visual bounds
+- * @bug 6323611
++ * @bug 6323611 6761856
+  */
+ 
+ import java.awt.*;
+@@ -39,10 +39,15 @@ public class TextLayoutBounds {
+        Rectangle2D tlBounds = tl.getBounds();
+        GlyphVector gv = f.createGlyphVector(frc, s);
+        Rectangle2D gvvBounds = gv.getVisualBounds();
++       Rectangle2D oBounds = tl.getOutline(null).getBounds2D();
+        System.out.println("tlbounds="+tlBounds);
+        System.out.println("gvbounds="+gvvBounds);
++       System.out.println("outlineBounds="+oBounds);
+        if (!gvvBounds.equals(tlBounds)) {
+-          throw new RuntimeException("Bounds differ");
++          throw new RuntimeException("Bounds differ [gvv != tl]");
++       }
++       if (!tlBounds.equals(oBounds)) {
++          throw new RuntimeException("Bounds differ [tl != outline]");
+        }
+     }
+ }
+