Lines Matching defs:ReferenceEntry

299           Segment<K, V> segment, ReferenceEntry<K, V> entry, V value) {
312 Segment<K, V> segment, ReferenceEntry<K, V> entry, V value) {
325 Segment<K, V> segment, ReferenceEntry<K, V> entry, V value) {
339 Segment<K, V> segment, ReferenceEntry<K, V> entry, V value);
355 <K, V> ReferenceEntry<K, V> newEntry(
356 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
362 <K, V> ReferenceEntry<K, V> newEntry(
363 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
368 <K, V> ReferenceEntry<K, V> copyEntry(
369 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
370 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
377 <K, V> ReferenceEntry<K, V> newEntry(
378 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
383 <K, V> ReferenceEntry<K, V> copyEntry(
384 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
385 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
392 <K, V> ReferenceEntry<K, V> newEntry(
393 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
398 <K, V> ReferenceEntry<K, V> copyEntry(
399 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
400 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
409 <K, V> ReferenceEntry<K, V> newEntry(
410 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
416 <K, V> ReferenceEntry<K, V> newEntry(
417 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
422 <K, V> ReferenceEntry<K, V> copyEntry(
423 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
424 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
431 <K, V> ReferenceEntry<K, V> newEntry(
432 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
437 <K, V> ReferenceEntry<K, V> copyEntry(
438 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
439 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
446 <K, V> ReferenceEntry<K, V> newEntry(
447 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
452 <K, V> ReferenceEntry<K, V> copyEntry(
453 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
454 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
463 <K, V> ReferenceEntry<K, V> newEntry(
464 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
470 <K, V> ReferenceEntry<K, V> newEntry(
471 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
476 <K, V> ReferenceEntry<K, V> copyEntry(
477 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
478 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
485 <K, V> ReferenceEntry<K, V> newEntry(
486 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
491 <K, V> ReferenceEntry<K, V> copyEntry(
492 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
493 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
500 <K, V> ReferenceEntry<K, V> newEntry(
501 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
506 <K, V> ReferenceEntry<K, V> copyEntry(
507 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
508 ReferenceEntry<K, V> newEntry = super.copyEntry(segment, original, newNext);
545 abstract <K, V> ReferenceEntry<K, V> newEntry(
546 Segment<K, V> segment, K key, int hash, @Nullable ReferenceEntry<K, V> next);
555 <K, V> ReferenceEntry<K, V> copyEntry(
556 Segment<K, V> segment, ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
561 <K, V> void copyExpirableEntry(ReferenceEntry<K, V> original, ReferenceEntry<K, V> newEntry) {
573 <K, V> void copyEvictableEntry(ReferenceEntry<K, V> original, ReferenceEntry<K, V> newEntry) {
604 ReferenceEntry<K, V> getEntry();
609 ValueReference<K, V> copyFor(ReferenceQueue<V> queue, ReferenceEntry<K, V> entry);
637 public ReferenceEntry<Object, Object> getEntry() {
643 ReferenceQueue<Object> queue, ReferenceEntry<Object, Object> entry) {
682 interface ReferenceEntry<K, V> {
696 ReferenceEntry<K, V> getNext();
727 ReferenceEntry<K, V> getNextExpirable();
732 void setNextExpirable(ReferenceEntry<K, V> next);
737 ReferenceEntry<K, V> getPreviousExpirable();
742 void setPreviousExpirable(ReferenceEntry<K, V> previous);
753 ReferenceEntry<K, V> getNextEvictable();
758 void setNextEvictable(ReferenceEntry<K, V> next);
763 ReferenceEntry<K, V> getPreviousEvictable();
768 void setPreviousEvictable(ReferenceEntry<K, V> previous);
771 private enum NullEntry implements ReferenceEntry<Object, Object> {
783 public ReferenceEntry<Object, Object> getNext() {
806 public ReferenceEntry<Object, Object> getNextExpirable() {
811 public void setNextExpirable(ReferenceEntry<Object, Object> next) {}
814 public ReferenceEntry<Object, Object> getPreviousExpirable() {
819 public void setPreviousExpirable(ReferenceEntry<Object, Object> previous) {}
822 public ReferenceEntry<Object, Object> getNextEvictable() {
827 public void setNextEvictable(ReferenceEntry<Object, Object> next) {}
830 public ReferenceEntry<Object, Object> getPreviousEvictable() {
835 public void setPreviousEvictable(ReferenceEntry<Object, Object> previous) {}
838 static abstract class AbstractReferenceEntry<K, V> implements ReferenceEntry<K, V> {
850 public ReferenceEntry<K, V> getNext() {
875 public ReferenceEntry<K, V> getNextExpirable() {
880 public void setNextExpirable(ReferenceEntry<K, V> next) {
885 public ReferenceEntry<K, V> getPreviousExpirable() {
890 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
895 public ReferenceEntry<K, V> getNextEvictable() {
900 public void setNextEvictable(ReferenceEntry<K, V> next) {
905 public ReferenceEntry<K, V> getPreviousEvictable() {
910 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
916 static <K, V> ReferenceEntry<K, V> nullEntry() {
917 return (ReferenceEntry<K, V>) NullEntry.INSTANCE;
966 static class StrongEntry<K, V> implements ReferenceEntry<K, V> {
969 StrongEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
993 public ReferenceEntry<K, V> getNextExpirable() {
998 public void setNextExpirable(ReferenceEntry<K, V> next) {
1003 public ReferenceEntry<K, V> getPreviousExpirable() {
1008 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1015 public ReferenceEntry<K, V> getNextEvictable() {
1020 public void setNextEvictable(ReferenceEntry<K, V> next) {
1025 public ReferenceEntry<K, V> getPreviousEvictable() {
1030 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1037 final ReferenceEntry<K, V> next;
1058 public ReferenceEntry<K, V> getNext() {
1064 implements ReferenceEntry<K, V> {
1065 StrongExpirableEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1084 ReferenceEntry<K, V> nextExpirable = nullEntry();
1087 public ReferenceEntry<K, V> getNextExpirable() {
1092 public void setNextExpirable(ReferenceEntry<K, V> next) {
1097 ReferenceEntry<K, V> previousExpirable = nullEntry();
1100 public ReferenceEntry<K, V> getPreviousExpirable() {
1105 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1111 extends StrongEntry<K, V> implements ReferenceEntry<K, V> {
1112 StrongEvictableEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1119 ReferenceEntry<K, V> nextEvictable = nullEntry();
1122 public ReferenceEntry<K, V> getNextEvictable() {
1127 public void setNextEvictable(ReferenceEntry<K, V> next) {
1132 ReferenceEntry<K, V> previousEvictable = nullEntry();
1135 public ReferenceEntry<K, V> getPreviousEvictable() {
1140 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1146 extends StrongEntry<K, V> implements ReferenceEntry<K, V> {
1147 StrongExpirableEvictableEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1166 ReferenceEntry<K, V> nextExpirable = nullEntry();
1169 public ReferenceEntry<K, V> getNextExpirable() {
1174 public void setNextExpirable(ReferenceEntry<K, V> next) {
1179 ReferenceEntry<K, V> previousExpirable = nullEntry();
1182 public ReferenceEntry<K, V> getPreviousExpirable() {
1187 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1194 ReferenceEntry<K, V> nextEvictable = nullEntry();
1197 public ReferenceEntry<K, V> getNextEvictable() {
1202 public void setNextEvictable(ReferenceEntry<K, V> next) {
1207 ReferenceEntry<K, V> previousEvictable = nullEntry();
1210 public ReferenceEntry<K, V> getPreviousEvictable() {
1215 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1223 static class SoftEntry<K, V> extends SoftReference<K> implements ReferenceEntry<K, V> {
1224 SoftEntry(ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1247 public ReferenceEntry<K, V> getNextExpirable() {
1252 public void setNextExpirable(ReferenceEntry<K, V> next) {
1257 public ReferenceEntry<K, V> getPreviousExpirable() {
1262 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1269 public ReferenceEntry<K, V> getNextEvictable() {
1274 public void setNextEvictable(ReferenceEntry<K, V> next) {
1279 public ReferenceEntry<K, V> getPreviousEvictable() {
1284 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1291 final ReferenceEntry<K, V> next;
1312 public ReferenceEntry<K, V> getNext() {
1318 extends SoftEntry<K, V> implements ReferenceEntry<K, V> {
1320 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1339 ReferenceEntry<K, V> nextExpirable = nullEntry();
1342 public ReferenceEntry<K, V> getNextExpirable() {
1347 public void setNextExpirable(ReferenceEntry<K, V> next) {
1352 ReferenceEntry<K, V> previousExpirable = nullEntry();
1355 public ReferenceEntry<K, V> getPreviousExpirable() {
1360 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1366 extends SoftEntry<K, V> implements ReferenceEntry<K, V> {
1368 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1375 ReferenceEntry<K, V> nextEvictable = nullEntry();
1378 public ReferenceEntry<K, V> getNextEvictable() {
1383 public void setNextEvictable(ReferenceEntry<K, V> next) {
1388 ReferenceEntry<K, V> previousEvictable = nullEntry();
1391 public ReferenceEntry<K, V> getPreviousEvictable() {
1396 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1402 extends SoftEntry<K, V> implements ReferenceEntry<K, V> {
1404 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1423 ReferenceEntry<K, V> nextExpirable = nullEntry();
1426 public ReferenceEntry<K, V> getNextExpirable() {
1431 public void setNextExpirable(ReferenceEntry<K, V> next) {
1436 ReferenceEntry<K, V> previousExpirable = nullEntry();
1439 public ReferenceEntry<K, V> getPreviousExpirable() {
1444 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1451 ReferenceEntry<K, V> nextEvictable = nullEntry();
1454 public ReferenceEntry<K, V> getNextEvictable() {
1459 public void setNextEvictable(ReferenceEntry<K, V> next) {
1464 ReferenceEntry<K, V> previousEvictable = nullEntry();
1467 public ReferenceEntry<K, V> getPreviousEvictable() {
1472 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1480 static class WeakEntry<K, V> extends WeakReference<K> implements ReferenceEntry<K, V> {
1481 WeakEntry(ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1505 public ReferenceEntry<K, V> getNextExpirable() {
1510 public void setNextExpirable(ReferenceEntry<K, V> next) {
1515 public ReferenceEntry<K, V> getPreviousExpirable() {
1520 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1527 public ReferenceEntry<K, V> getNextEvictable() {
1532 public void setNextEvictable(ReferenceEntry<K, V> next) {
1537 public ReferenceEntry<K, V> getPreviousEvictable() {
1542 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1549 final ReferenceEntry<K, V> next;
1570 public ReferenceEntry<K, V> getNext() {
1576 extends WeakEntry<K, V> implements ReferenceEntry<K, V> {
1578 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1597 ReferenceEntry<K, V> nextExpirable = nullEntry();
1600 public ReferenceEntry<K, V> getNextExpirable() {
1605 public void setNextExpirable(ReferenceEntry<K, V> next) {
1610 ReferenceEntry<K, V> previousExpirable = nullEntry();
1613 public ReferenceEntry<K, V> getPreviousExpirable() {
1618 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1624 extends WeakEntry<K, V> implements ReferenceEntry<K, V> {
1626 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1633 ReferenceEntry<K, V> nextEvictable = nullEntry();
1636 public ReferenceEntry<K, V> getNextEvictable() {
1641 public void setNextEvictable(ReferenceEntry<K, V> next) {
1646 ReferenceEntry<K, V> previousEvictable = nullEntry();
1649 public ReferenceEntry<K, V> getPreviousEvictable() {
1654 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1660 extends WeakEntry<K, V> implements ReferenceEntry<K, V> {
1662 ReferenceQueue<K> queue, K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1681 ReferenceEntry<K, V> nextExpirable = nullEntry();
1684 public ReferenceEntry<K, V> getNextExpirable() {
1689 public void setNextExpirable(ReferenceEntry<K, V> next) {
1694 ReferenceEntry<K, V> previousExpirable = nullEntry();
1697 public ReferenceEntry<K, V> getPreviousExpirable() {
1702 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
1709 ReferenceEntry<K, V> nextEvictable = nullEntry();
1712 public ReferenceEntry<K, V> getNextEvictable() {
1717 public void setNextEvictable(ReferenceEntry<K, V> next) {
1722 ReferenceEntry<K, V> previousEvictable = nullEntry();
1725 public ReferenceEntry<K, V> getPreviousEvictable() {
1730 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
1740 final ReferenceEntry<K, V> entry;
1742 WeakValueReference(ReferenceQueue<V> queue, V referent, ReferenceEntry<K, V> entry) {
1748 public ReferenceEntry<K, V> getEntry() {
1759 ReferenceQueue<V> queue, ReferenceEntry<K, V> entry) {
1779 final ReferenceEntry<K, V> entry;
1781 SoftValueReference(ReferenceQueue<V> queue, V referent, ReferenceEntry<K, V> entry) {
1787 public ReferenceEntry<K, V> getEntry() {
1797 public ValueReference<K, V> copyFor(ReferenceQueue<V> queue, ReferenceEntry<K, V> entry) {
1828 public ReferenceEntry<K, V> getEntry() {
1833 public ValueReference<K, V> copyFor(ReferenceQueue<V> queue, ReferenceEntry<K, V> entry) {
1876 ReferenceEntry<K, V> newEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
1885 ReferenceEntry<K, V> copyEntry(ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
1895 ValueReference<K, V> newValueReference(ReferenceEntry<K, V> entry, V value) {
1906 ReferenceEntry<K, V> entry = valueReference.getEntry();
1911 void reclaimKey(ReferenceEntry<K, V> entry) {
1921 boolean isLive(ReferenceEntry<K, V> entry) {
1945 V getLiveValue(ReferenceEntry<K, V> entry) {
1965 boolean isExpired(ReferenceEntry<K, V> entry) {
1972 boolean isExpired(ReferenceEntry<K, V> entry, long now) {
1978 static <K, V> void connectExpirables(ReferenceEntry<K, V> previous, ReferenceEntry<K, V> next) {
1984 static <K, V> void nullifyExpirable(ReferenceEntry<K, V> nulled) {
1985 ReferenceEntry<K, V> nullEntry = nullEntry();
2010 static <K, V> void connectEvictables(ReferenceEntry<K, V> previous, ReferenceEntry<K, V> next) {
2016 static <K, V> void nullifyEvictable(ReferenceEntry<K, V> nulled) {
2017 ReferenceEntry<K, V> nullEntry = nullEntry();
2094 volatile AtomicReferenceArray<ReferenceEntry<K, V>> table;
2118 final Queue<ReferenceEntry<K, V>> recencyQueue;
2131 final Queue<ReferenceEntry<K, V>> evictionQueue;
2138 final Queue<ReferenceEntry<K, V>> expirationQueue;
2152 ? new ConcurrentLinkedQueue<ReferenceEntry<K, V>>()
2153 : MapMakerInternalMap.<ReferenceEntry<K, V>>discardingQueue();
2157 : MapMakerInternalMap.<ReferenceEntry<K, V>>discardingQueue();
2161 : MapMakerInternalMap.<ReferenceEntry<K, V>>discardingQueue();
2164 AtomicReferenceArray<ReferenceEntry<K, V>> newEntryArray(int size) {
2165 return new AtomicReferenceArray<ReferenceEntry<K, V>>(size);
2168 void initTable(AtomicReferenceArray<ReferenceEntry<K, V>> newTable) {
2178 ReferenceEntry<K, V> newEntry(K key, int hash, @Nullable ReferenceEntry<K, V> next) {
2183 ReferenceEntry<K, V> copyEntry(ReferenceEntry<K, V> original, ReferenceEntry<K, V> newNext) {
2185 ReferenceEntry<K, V> newEntry = map.entryFactory.copyEntry(this, original, newNext);
2194 void setValue(ReferenceEntry<K, V> entry, V value) {
2235 ReferenceEntry<K, V> entry = (ReferenceEntry<K, V>) ref;
2286 void recordRead(ReferenceEntry<K, V> entry) {
2301 void recordLockedRead(ReferenceEntry<K, V> entry) {
2314 void recordWrite(ReferenceEntry<K, V> entry) {
2337 ReferenceEntry<K, V> e;
2354 void recordExpirationTime(ReferenceEntry<K, V> entry, long expirationNanos) {
2383 ReferenceEntry<K, V> e;
2393 void enqueueNotification(ReferenceEntry<K, V> entry, RemovalCause cause) {
2415 ReferenceEntry<K, V> e = evictionQueue.remove();
2427 ReferenceEntry<K, V> getFirst(int hash) {
2429 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2435 ReferenceEntry<K, V> getEntry(Object key, int hash) {
2437 for (ReferenceEntry<K, V> e = getFirst(hash); e != null; e = e.getNext()) {
2457 ReferenceEntry<K, V> getLiveEntry(Object key, int hash) {
2458 ReferenceEntry<K, V> e = getEntry(key, hash);
2470 ReferenceEntry<K, V> e = getLiveEntry(key, hash);
2490 ReferenceEntry<K, V> e = getLiveEntry(key, hash);
2511 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2514 for (ReferenceEntry<K, V> e = table.get(i); e != null; e = e.getNext()) {
2543 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2545 ReferenceEntry<K, V> first = table.get(index);
2548 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2586 ReferenceEntry<K, V> newEntry = newEntry(key, hash, first);
2605 AtomicReferenceArray<ReferenceEntry<K, V>> oldTable = table;
2622 AtomicReferenceArray<ReferenceEntry<K, V>> newTable = newEntryArray(oldCapacity << 1);
2628 ReferenceEntry<K, V> head = oldTable.get(oldIndex);
2631 ReferenceEntry<K, V> next = head.getNext();
2641 ReferenceEntry<K, V> tail = head;
2643 for (ReferenceEntry<K, V> e = next; e != null; e = e.getNext()) {
2654 for (ReferenceEntry<K, V> e = head; e != tail; e = e.getNext()) {
2660 ReferenceEntry<K, V> newNext = newTable.get(newIndex);
2661 ReferenceEntry<K, V> newFirst = copyEntry(e, newNext);
2677 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2679 ReferenceEntry<K, V> first = table.get(index);
2681 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2694 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2728 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2730 ReferenceEntry<K, V> first = table.get(index);
2732 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2745 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2773 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2775 ReferenceEntry<K, V> first = table.get(index);
2777 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2795 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2816 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2818 ReferenceEntry<K, V> first = table.get(index);
2820 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2838 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2857 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2860 for (ReferenceEntry<K, V> e = table.get(i); e != null; e = e.getNext()) {
2898 ReferenceEntry<K, V> removeFromChain(ReferenceEntry<K, V> first, ReferenceEntry<K, V> entry) {
2903 ReferenceEntry<K, V> newFirst = entry.getNext();
2904 for (ReferenceEntry<K, V> e = first; e != entry; e = e.getNext()) {
2916 void removeCollectedEntry(ReferenceEntry<K, V> entry) {
2925 boolean reclaimKey(ReferenceEntry<K, V> entry, int hash) {
2929 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2931 ReferenceEntry<K, V> first = table.get(index);
2933 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2938 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2960 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2962 ReferenceEntry<K, V> first = table.get(index);
2964 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
2972 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
2997 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
2999 ReferenceEntry<K, V> first = table.get(index);
3001 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
3007 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
3023 boolean removeEntry(ReferenceEntry<K, V> entry, int hash, RemovalCause cause) {
3025 AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
3027 ReferenceEntry<K, V> first = table.get(index);
3029 for (ReferenceEntry<K, V> e = first; e != null; e = e.getNext()) {
3033 ReferenceEntry<K, V> newFirst = removeFromChain(first, e);
3048 boolean isCollected(ReferenceEntry<K, V> entry) {
3070 V getLiveValue(ReferenceEntry<K, V> entry) {
3147 * ReferenceEntry}, upon which it relies to perform its linking.
3156 static final class EvictionQueue<K, V> extends AbstractQueue<ReferenceEntry<K, V>> {
3157 final ReferenceEntry<K, V> head = new AbstractReferenceEntry<K, V>() {
3159 ReferenceEntry<K, V> nextEvictable = this;
3162 public ReferenceEntry<K, V> getNextEvictable() {
3167 public void setNextEvictable(ReferenceEntry<K, V> next) {
3171 ReferenceEntry<K, V> previousEvictable = this;
3174 public ReferenceEntry<K, V> getPreviousEvictable() {
3179 public void setPreviousEvictable(ReferenceEntry<K, V> previous) {
3187 public boolean offer(ReferenceEntry<K, V> entry) {
3199 public ReferenceEntry<K, V> peek() {
3200 ReferenceEntry<K, V> next = head.getNextEvictable();
3205 public ReferenceEntry<K, V> poll() {
3206 ReferenceEntry<K, V> next = head.getNextEvictable();
3218 ReferenceEntry<K, V> e = (ReferenceEntry) o;
3219 ReferenceEntry<K, V> previous = e.getPreviousEvictable();
3220 ReferenceEntry<K, V> next = e.getNextEvictable();
3230 ReferenceEntry<K, V> e = (ReferenceEntry) o;
3242 for (ReferenceEntry<K, V> e = head.getNextEvictable(); e != head; e = e.getNextEvictable()) {
3250 ReferenceEntry<K, V> e = head.getNextEvictable();
3252 ReferenceEntry<K, V> next = e.getNextEvictable();
3262 public Iterator<ReferenceEntry<K, V>> iterator() {
3263 return new AbstractLinkedIterator<ReferenceEntry<K, V>>(peek()) {
3265 protected ReferenceEntry<K, V> computeNext(ReferenceEntry<K, V> previous) {
3266 ReferenceEntry<K, V> next = previous.getNextEvictable();
3275 * {@code ReferenceEntry}, upon which it reliese to perform its linking.
3284 static final class ExpirationQueue<K, V> extends AbstractQueue<ReferenceEntry<K, V>> {
3285 final ReferenceEntry<K, V> head = new AbstractReferenceEntry<K, V>() {
3295 ReferenceEntry<K, V> nextExpirable = this;
3298 public ReferenceEntry<K, V> getNextExpirable() {
3303 public void setNextExpirable(ReferenceEntry<K, V> next) {
3307 ReferenceEntry<K, V> previousExpirable = this;
3310 public ReferenceEntry<K, V> getPreviousExpirable() {
3315 public void setPreviousExpirable(ReferenceEntry<K, V> previous) {
3323 public boolean offer(ReferenceEntry<K, V> entry) {
3335 public ReferenceEntry<K, V> peek() {
3336 ReferenceEntry<K, V> next = head.getNextExpirable();
3341 public ReferenceEntry<K, V> poll() {
3342 ReferenceEntry<K, V> next = head.getNextExpirable();
3354 ReferenceEntry<K, V> e = (ReferenceEntry) o;
3355 ReferenceEntry<K, V> previous = e.getPreviousExpirable();
3356 ReferenceEntry<K, V> next = e.getNextExpirable();
3366 ReferenceEntry<K, V> e = (ReferenceEntry) o;
3378 for (ReferenceEntry<K, V> e = head.getNextExpirable(); e != head; e = e.getNextExpirable()) {
3386 ReferenceEntry<K, V> e = head.getNextExpirable();
3388 ReferenceEntry<K, V> next = e.getNextExpirable();
3398 public Iterator<ReferenceEntry<K, V>> iterator() {
3399 return new AbstractLinkedIterator<ReferenceEntry<K, V>>(peek()) {
3401 protected ReferenceEntry<K, V> computeNext(ReferenceEntry<K, V> previous) {
3402 ReferenceEntry<K, V> next = previous.getNextExpirable();
3486 ReferenceEntry<K, V> getEntry(@Nullable Object key) {
3497 ReferenceEntry<K, V> getLiveEntry(@Nullable Object key) {
3534 AtomicReferenceArray<ReferenceEntry<K, V>> table = segment.table;
3536 for (ReferenceEntry<K, V> e = table.get(j); e != null; e = e.getNext()) {
3651 AtomicReferenceArray<ReferenceEntry<K, V>> currentTable;
3652 ReferenceEntry<K, V> nextEntry;
3717 boolean advanceTo(ReferenceEntry<K, V> entry) {