On 28 Jul 2015, at 18:14, Steve Drach <steve.dr...@oracle.com> wrote:
> Please review the following simple fix for the issue reported in > https://bugs.openjdk.java.net/browse/JDK-8062849 > <https://bugs.openjdk.java.net/browse/JDK-8062849>. > +1 Paul. > ----------------- > # HG changeset patch > # User sdrach > # Date 1437777193 25200 > # Fri Jul 24 15:33:13 2015 -0700 > # Node ID e57b1569a65ec4dc8c749dedd3345abe5d493054 > # Parent 4dd09cb5f7c2a2a23a9958ea7a602dd74d5709b2 > 8062849: Optimize EnumMap.equals > Summary: In the equals method, if the two EnumMaps are a different size > return false since they can't be equal. > Reviewed-by: brent.christ...@oracle.com, paul.san...@oracle.com > Contributed-by: steve.dr...@oracle.com > > diff --git a/src/java.base/share/classes/java/util/EnumMap.java > b/src/java.base/share/classes/java/util/EnumMap.java > --- a/src/java.base/share/classes/java/util/EnumMap.java > +++ b/src/java.base/share/classes/java/util/EnumMap.java > @@ -681,8 +681,11 @@ > } > > private boolean equals(EnumMap<?,?> em) { > + if (size != em.size) > + return false; > + > if (em.keyType != keyType) > - return size == 0 && em.size == 0; > + return size == 0; > > // Key types match, compare each value > for (int i = 0; i < keyUniverse.length; i++) { >