ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/HashMap.java
(Generate patch)

Comparing jsr166/src/main/java/util/HashMap.java (file contents):
Revision 1.4 by jsr166, Wed Mar 28 02:50:41 2018 UTC vs.
Revision 1.6 by jsr166, Thu Jul 5 15:18:56 2018 UTC

# Line 376 | Line 376 | public class HashMap<K,V> extends Abstra
376       * Returns a power of two size for the given target capacity.
377       */
378      static final int tableSizeFor(int cap) {
379 <        int n = cap - 1;
380 <        n |= n >>> 1;
381 <        n |= n >>> 2;
382 <        n |= n >>> 4;
383 <        n |= n >>> 8;
384 <        n |= n >>> 16;
379 >        int n = -1 >>> Integer.numberOfLeadingZeros(cap - 1);
380          return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
381      }
382  
# Line 1268 | Line 1263 | public class HashMap<K,V> extends Abstra
1263      @Override
1264      public V merge(K key, V value,
1265                     BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
1266 <        if (value == null)
1272 <            throw new NullPointerException();
1273 <        if (remappingFunction == null)
1266 >        if (value == null || remappingFunction == null)
1267              throw new NullPointerException();
1268          int hash = hash(key);
1269          Node<K,V>[] tab; Node<K,V> first; int n, i;
# Line 1313 | Line 1306 | public class HashMap<K,V> extends Abstra
1306              else
1307                  removeNode(hash, key, null, false, true);
1308              return v;
1309 <        }
1317 <        if (value != null) {
1309 >        } else {
1310              if (t != null)
1311                  t.putTreeVal(this, tab, hash, key, value);
1312              else {
# Line 1325 | Line 1317 | public class HashMap<K,V> extends Abstra
1317              ++modCount;
1318              ++size;
1319              afterNodeInsertion(true);
1320 +            return value;
1321          }
1329        return value;
1322      }
1323  
1324      @Override

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines