8207314: Unnecessary reallocation when constructing WeakHashMap from a large Map
Reviewed-by: martin
--- 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);