changeset 9491:36f4cf8872f3

7192942: (coll) Inefficient calculation of power of two in HashMap Reviewed-by: mduigou
author igerasim
date Tue, 30 Jul 2013 21:11:08 +0400
parents c49b538ef054
children 54329c24c2f4
files src/share/classes/java/util/HashMap.java
diffstat 1 files changed, 2 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/util/HashMap.java	Thu Aug 01 12:38:07 2013 +0100
+++ b/src/share/classes/java/util/HashMap.java	Tue Jul 30 21:11:08 2013 +0400
@@ -876,13 +876,9 @@
 
     private static int roundUpToPowerOf2(int number) {
         // assert number >= 0 : "number must be non-negative";
-        int rounded = number >= MAXIMUM_CAPACITY
+        return number >= MAXIMUM_CAPACITY
                 ? MAXIMUM_CAPACITY
-                : (rounded = Integer.highestOneBit(number)) != 0
-                    ? (Integer.bitCount(number) > 1) ? rounded << 1 : rounded
-                    : 1;
-
-        return rounded;
+                : (number > 1) ? Integer.highestOneBit((number - 1) << 1) : 1;
     }
 
     /**