summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Kennke <roman@kennke.org>2006-11-22 16:05:38 +0000
committerRoman Kennke <roman@kennke.org>2006-11-22 16:05:38 +0000
commit12cac163c19591c3dce17b85a34ac9fbfd5855ba (patch)
tree1405290f0fe3ed2fd18d38b645cf94c9f3d083a2
parentc5426028d29aec65fa51e1d2f29934cc245eb9a2 (diff)
downloadclasspath-12cac163c19591c3dce17b85a34ac9fbfd5855ba.tar.gz
2006-11-22 Roman Kennke <kennke@aicas.com>
* java/awt/font/TextLayout.java (hash): New field. Caches the hash code. (hashCode): Implemented.
-rw-r--r--ChangeLog6
-rw-r--r--java/awt/font/TextLayout.java15
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e2fd016d0..8611cf78f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2006-11-22 Roman Kennke <kennke@aicas.com>
+ * java/awt/font/TextLayout.java
+ (hash): New field. Caches the hash code.
+ (hashCode): Implemented.
+
+2006-11-22 Roman Kennke <kennke@aicas.com>
+
* java/awt/image/ImageFilter.java
Reformat whole class.
(getFilterInstance): Don't touch the consumer field. Don't check
diff --git a/java/awt/font/TextLayout.java b/java/awt/font/TextLayout.java
index 0362c2687..addf8a417 100644
--- a/java/awt/font/TextLayout.java
+++ b/java/awt/font/TextLayout.java
@@ -164,6 +164,11 @@ public final class TextLayout implements Cloneable
private int[] visualToLogical;
/**
+ * The cached hashCode.
+ */
+ private int hash;
+
+ /**
* The default caret policy.
*/
public static final TextLayout.CaretPolicy DEFAULT_CARET_POLICY =
@@ -1091,9 +1096,15 @@ public final class TextLayout implements Cloneable
}
public int hashCode ()
- throws NotImplementedException
{
- throw new Error ("not implemented");
+ // This is implemented in sync to equals().
+ if (hash == 0 && runs.length > 0)
+ {
+ hash = runs.length;
+ for (int i = 0; i < runs.length; i++)
+ hash ^= runs[i].glyphVector.hashCode();
+ }
+ return hash;
}
public String toString ()