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);
}