From 0563022a206294757effa44686727bffc4f7c2bd Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 23 Mar 2012 15:19:26 +0000 Subject: Merge GNU Classpath 0.99 into libjava. From-SVN: r185741 --- libjava/classpath/java/util/HashMap.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libjava/classpath/java/util/HashMap.java') diff --git a/libjava/classpath/java/util/HashMap.java b/libjava/classpath/java/util/HashMap.java index 55d81c620b1..f5194a24061 100644 --- a/libjava/classpath/java/util/HashMap.java +++ b/libjava/classpath/java/util/HashMap.java @@ -100,11 +100,10 @@ public class HashMap extends AbstractMap implements Map, Cloneable, Serializable { /** - * Default number of buckets. This is the value the JDK 1.3 uses. Some - * early documentation specified this value as 101. That is incorrect. + * Default number of buckets; this is currently set to 16. * Package visible for use by HashSet. */ - static final int DEFAULT_CAPACITY = 11; + static final int DEFAULT_CAPACITY = 16; /** * The default load factor; this is explicitly specified by the spec. @@ -344,9 +343,12 @@ public class HashMap extends AbstractMap int idx = hash(key); HashEntry e = buckets[idx]; + int hash1 = key == null ? 0 : key.hashCode(); while (e != null) { - if (equals(key, e.key)) + int hash2 = e.key == null ? 0 : e.key.hashCode(); + + if ((hash1 == hash2) && equals(key, e.key)) { e.access(); // Must call this for bookkeeping in LinkedHashMap. V r = e.value; -- cgit v1.2.3