/** * See the code for <code>ReferenceMap.ReferenceEntry.purge</code>. */ private boolean purge(AccessibleEntry entry, Reference ref) { boolean match = (!isHard(keyType) && entry.key() == ref) || (!isHard(valueType) && entry.value() == ref); if (match) { if (!isHard(keyType)) ((Reference) entry.key()).clear(); if (!isHard(valueType)) ((Reference) entry.value()).clear(); else if (purgeValues) entry.nullValue(); } return match; }
/** * See the code for <code>ReferenceMap.ReferenceEntry.purge</code>. */ private boolean purge(AccessibleEntry entry, Reference ref) { boolean match = (!isHard(keyType) && entry.key() == ref) || (!isHard(valueType) && entry.value() == ref); if (match) { if (!isHard(keyType)) ((Reference) entry.key()).clear(); if (!isHard(valueType)) ((Reference) entry.value()).clear(); else if (purgeValues) entry.nullValue(); } return match; }
/** * See the code for <code>ReferenceMap.ReferenceEntry.purge</code>. */ private boolean purge(AccessibleEntry entry, Reference ref) { boolean match = (!isHard(keyType) && entry.key() == ref) || (!isHard(valueType) && entry.value() == ref); if (match) { if (!isHard(keyType)) ((Reference) entry.key()).clear(); if (!isHard(valueType)) ((Reference) entry.value()).clear(); else if (purgeValues) entry.nullValue(); } return match; }
/** * See the code for <code>ReferenceMap.ReferenceEntry.purge</code>. */ private boolean purge(AccessibleEntry entry, Reference ref) { boolean match = (!isHard(keyType) && entry.key() == ref) || (!isHard(valueType) && entry.value() == ref); if (match) { if (!isHard(keyType)) ((Reference) entry.key()).clear(); if (!isHard(valueType)) ((Reference) entry.value()).clear(); else if (purgeValues) entry.nullValue(); } return match; }
protected void purge(Reference ref) { // the logic for this method is taken from the original purge method // we're overriding, with added logic to track the expired key/value int index = hashIndex(ref.hashCode(), data.length); AccessibleEntry entry = (AccessibleEntry) data[index]; AccessibleEntry prev = null; Object key = null, value = null; while (entry != null) { if (purge(entry, ref)) { if (isHard(keyType)) key = entry.key(); else if (isHard(valueType)) value = entry.value(); if (prev == null) data[index] = entry.nextEntry(); else prev.setNextEntry(entry.nextEntry()); size--; break; } prev = entry; entry = entry.nextEntry(); } if (key != null) valueExpired(key); else if (value != null) keyExpired(value); }
protected void purge(Reference ref) { // the logic for this method is taken from the original purge method // we're overriding, with added logic to track the expired key/value int index = hashIndex(ref.hashCode(), data.length); AccessibleEntry entry = (AccessibleEntry) data[index]; AccessibleEntry prev = null; Object key = null, value = null; while (entry != null) { if (purge(entry, ref)) { if (isHard(keyType)) key = entry.key(); else if (isHard(valueType)) value = entry.value(); if (prev == null) data[index] = entry.nextEntry(); else prev.setNextEntry(entry.nextEntry()); size--; break; } prev = entry; entry = entry.nextEntry(); } if (key != null) valueExpired(key); else if (value != null) keyExpired(value); }
protected void purge(Reference ref) { // the logic for this method is taken from the original purge method // we're overriding, with added logic to track the expired key/value int index = hashIndex(ref.hashCode(), data.length); AccessibleEntry entry = (AccessibleEntry) data[index]; AccessibleEntry prev = null; Object key = null, value = null; while (entry != null) { if (purge(entry, ref)) { if (isHard(keyType)) key = entry.key(); else if (isHard(valueType)) value = entry.value(); if (prev == null) data[index] = entry.nextEntry(); else prev.setNextEntry(entry.nextEntry()); size--; break; } prev = entry; entry = entry.nextEntry(); } if (key != null) valueExpired(key); else if (value != null) keyExpired(value); }
protected void purge(Reference ref) { // the logic for this method is taken from the original purge method // we're overriding, with added logic to track the expired key/value int index = hashIndex(ref.hashCode(), data.length); AccessibleEntry entry = (AccessibleEntry) data[index]; AccessibleEntry prev = null; Object key = null, value = null; while (entry != null) { if (purge(entry, ref)) { if (isHard(keyType)) key = entry.key(); else if (isHard(valueType)) value = entry.value(); if (prev == null) data[index] = entry.nextEntry(); else prev.setNextEntry(entry.nextEntry()); size--; break; } prev = entry; entry = entry.nextEntry(); } if (key != null) valueExpired(key); else if (value != null) keyExpired(value); }