private void expunge() { Entry<T>[] table = entryTable; ReferenceQueue<Object> queue = referenceQueue; EntryRef ref; // note that we'll potentially see the refs for both the java object and // proxy -- whichever we see first will cause the entry to be removed; // the other will not match an entry and will be ignored. while ((ref = (EntryRef)queue.poll()) != null) { int hash; for (Entry<T> e = table[(hash = ref.hash()) & (table.length - 1)]; e != null; e = e.next) { if (hash == e.hash && (ref == e.objectRef || ref == e.proxyRef)) { remove(table, hash, e); break; } } } }
private void expunge() { Entry<T>[] table = entryTable; ReferenceQueue<Object> queue = referenceQueue; EntryRef ref; // note that we'll potentially see the refs for both the java object and // proxy -- whichever we see first will cause the entry to be removed; // the other will not match an entry and will be ignored. while ((ref = (EntryRef)queue.poll()) != null) { int hash; for (Entry<T> e = table[(hash = ref.hash()) & (table.length - 1)]; e != null; e = e.next) { if (hash == e.hash && (ref == e.objectRef || ref == e.proxyRef)) { remove(table, hash, e); break; } } } }
private void expunge() { Entry<T>[] table = entryTable; ReferenceQueue<Object> queue = referenceQueue; EntryRef ref; // note that we'll potentially see the refs for both the java object and // proxy -- whichever we see first will cause the entry to be removed; // the other will not match an entry and will be ignored. while ((ref = (EntryRef)queue.poll()) != null) { int hash; for (Entry<T> e = table[(hash = ref.hash()) & (table.length - 1)]; e != null; e = e.next) { if (hash == e.hash && (ref == e.objectRef || ref == e.proxyRef)) { remove(table, hash, e); break; } } } }
if ((proxy = e.proxyRef.get()) != null) return proxy; remove(table, hash, e); potentialNewSize--; break;
if ((proxy = e.proxyRef.get()) != null) return proxy; remove(table, hash, e); potentialNewSize--; break;
if ((proxy = e.proxyRef.get()) != null) return proxy; remove(table, hash, e); potentialNewSize--; break;
if ((proxy = e.proxyRef.get()) != null) return proxy; remove(table, hash, e); potentialNewSize--; break;
remove(table, hash, e); potentialNewSize--; break;
remove(table, hash, e); potentialNewSize--; break;
remove(table, hash, e); potentialNewSize--; break;
remove(table, hash, e); potentialNewSize--; break;
private void expunge() { Entry<T>[] table = entryTable; ReferenceQueue<Object> queue = referenceQueue; EntryRef ref; // note that we'll potentially see the refs for both the java object and // proxy -- whichever we see first will cause the entry to be removed; // the other will not match an entry and will be ignored. while ((ref = (EntryRef)queue.poll()) != null) { int hash; for (Entry<T> e = table[(hash = ref.hash()) & (table.length - 1)]; e != null; e = e.next) { if (hash == e.hash && (ref == e.objectRef || ref == e.proxyRef)) { remove(table, hash, e); break; } } } }