RFR: JDK-8062849 -- Optimize EnumMap.equals
Steve Drach
steve.drach at oracle.com
Tue Jul 28 16:14:22 UTC 2015
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>.
-----------------
# 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.christian at oracle.com, paul.sandoz at oracle.com
Contributed-by: steve.drach at 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++) {
More information about the core-libs-dev
mailing list