Implements the FRC hashcode and tweaks the AffineTransform one to be Sun-compatible. (Unnecessary, but since the old version claimed to be, we might as well make it so.)
2006-08-02 Sven de Marothy <[EMAIL PROTECTED]> * java/awt/geom/AffineTransform.java: (hashCode): Tweak impl. * java/awt/font/FontRenderContext.java: (hashCode): Implement.
Index: java/awt/font/FontRenderContext.java =================================================================== RCS file: /sources/classpath/classpath/java/awt/font/FontRenderContext.java,v retrieving revision 1.4 diff -U3 -r1.4 FontRenderContext.java --- java/awt/font/FontRenderContext.java 21 Jun 2006 13:50:58 -0000 1.4 +++ java/awt/font/FontRenderContext.java 2 Aug 2006 17:13:40 -0000 @@ -117,8 +117,12 @@ */ public int hashCode () { - // FIXME: check what SUN does here. - return affineTransform == null ? 0 : affineTransform.hashCode (); + int code = ( isAntiAliased ? 1 : 0 ) + ( usesFractionalMetrics ? 2 : 0 ); + + if( affineTransform != null && !affineTransform.isIdentity() ) + code ^= affineTransform.hashCode(); + + return code; } public boolean isAntiAliased () Index: java/awt/geom/AffineTransform.java =================================================================== RCS file: /sources/classpath/classpath/java/awt/geom/AffineTransform.java,v retrieving revision 1.10 diff -U3 -r1.10 AffineTransform.java --- java/awt/geom/AffineTransform.java 11 Jun 2006 08:29:57 -0000 1.10 +++ java/awt/geom/AffineTransform.java 2 Aug 2006 17:13:40 -0000 @@ -1401,10 +1401,10 @@ * documented, but appears to be the same as: * <pre> * long l = Double.doubleToLongBits(getScaleX()); - * l = l * 31 + Double.doubleToLongBits(getShearY()); * l = l * 31 + Double.doubleToLongBits(getShearX()); - * l = l * 31 + Double.doubleToLongBits(getScaleY()); * l = l * 31 + Double.doubleToLongBits(getTranslateX()); + * l = l * 31 + Double.doubleToLongBits(getShearY()); + * l = l * 31 + Double.doubleToLongBits(getScaleY()); * l = l * 31 + Double.doubleToLongBits(getTranslateY()); * return (int) ((l >> 32) ^ l); * </pre> @@ -1413,12 +1413,12 @@ */ public int hashCode() { - long l = Double.doubleToLongBits(m00); - l = l * 31 + Double.doubleToLongBits(m10); - l = l * 31 + Double.doubleToLongBits(m01); - l = l * 31 + Double.doubleToLongBits(m11); - l = l * 31 + Double.doubleToLongBits(m02); - l = l * 31 + Double.doubleToLongBits(m12); + long l = Double.doubleToLongBits(m00); + l = l * 31 + Double.doubleToLongBits(m01); + l = l * 31 + Double.doubleToLongBits(m02); + l = l * 31 + Double.doubleToLongBits(m10); + l = l * 31 + Double.doubleToLongBits(m11); + l = l * 31 + Double.doubleToLongBits(m12); return (int) ((l >> 32) ^ l); }