8207314: Unnecessary reallocation when constructing WeakHashMap from a large Map
authorigerasim
Mon, 23 Jul 2018 22:07:55 -0700
changeset 51187 e55d46250431
parent 51186 22e1b5900d90
child 51188 630b5e06a947
8207314: Unnecessary reallocation when constructing WeakHashMap from a large Map Reviewed-by: martin
src/java.base/share/classes/java/util/WeakHashMap.java
--- a/src/java.base/share/classes/java/util/WeakHashMap.java	Mon Jul 23 18:29:35 2018 -0700
+++ b/src/java.base/share/classes/java/util/WeakHashMap.java	Mon Jul 23 22:07:55 2018 -0700
@@ -252,7 +252,7 @@
      * @since   1.3
      */
     public WeakHashMap(Map<? extends K, ? extends V> m) {
-        this(Math.max((int) (m.size() / DEFAULT_LOAD_FACTOR) + 1,
+        this(Math.max((int) ((float)m.size() / DEFAULT_LOAD_FACTOR + 1.0F),
                 DEFAULT_INITIAL_CAPACITY),
              DEFAULT_LOAD_FACTOR);
         putAll(m);