From bf63234249706a2ae5d357019c5236c08214c364 Mon Sep 17 00:00:00 2001 From: igerasim Date: Tue, 30 Jul 2013 21:11:08 +0400 Subject: [PATCH] 7192942: (coll) Inefficient calculation of power of two in HashMap Reviewed-by: mduigou --- src/share/classes/java/util/HashMap.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/share/classes/java/util/HashMap.java b/src/share/classes/java/util/HashMap.java index c2aace9db..8dfafac86 100644 --- a/src/share/classes/java/util/HashMap.java +++ b/src/share/classes/java/util/HashMap.java @@ -876,13 +876,9 @@ public class HashMap 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; } /** -- GitLab