public int setHashCode() { int hashCode = 0; int mc = modCount(); Object[] keys = set; for (int i = keys.length - 1; i >= 0; i--) { E key; // noinspection unchecked if ((key = (E) keys[i]) != FREE) { hashCode += nullableKeyHashCode(key); } } if (mc != modCount()) throw new java.util.ConcurrentModificationException(); return hashCode; }
public int setHashCode() { int hashCode = 0; int mc = modCount(); Object[] keys = set; for (int i = keys.length - 1; i >= 0; i--) { E key; // noinspection unchecked if ((key = (E) keys[i]) != FREE) { hashCode += nullableKeyHashCode(key); } } if (mc != modCount()) throw new java.util.ConcurrentModificationException(); return hashCode; }
void closeDelayedRemoved(int firstDelayedRemoved ) { Object[] keys = set; int capacityMask = keys.length - 1; for (int i = firstDelayedRemoved; i >= 0; i--) { if (keys[i] == REMOVED) { int indexToRemove = i; int indexToShift = indexToRemove; int shiftDistance = 1; while (true) { indexToShift = (indexToShift - 1) & capacityMask; Object keyToShift; if ((keyToShift = keys[indexToShift]) == FREE) { break; } E castedKeyToShift = (E) keyToShift; if ((keyToShift != REMOVED) && (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance)) { keys[indexToRemove] = castedKeyToShift; indexToRemove = indexToShift; shiftDistance = 1; } else { shiftDistance++; } } keys[indexToRemove] = FREE; postRemoveHook(); } } }
void closeDelayedRemoved(int firstDelayedRemoved ) { Object[] keys = set; int capacityMask = keys.length - 1; for (int i = firstDelayedRemoved; i >= 0; i--) { if (keys[i] == REMOVED) { int indexToRemove = i; int indexToShift = indexToRemove; int shiftDistance = 1; while (true) { indexToShift = (indexToShift - 1) & capacityMask; Object keyToShift; if ((keyToShift = keys[indexToShift]) == FREE) { break; } E castedKeyToShift = (E) keyToShift; if ((keyToShift != REMOVED) && (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance)) { keys[indexToRemove] = castedKeyToShift; indexToRemove = indexToShift; shiftDistance = 1; } else { shiftDistance++; } } keys[indexToRemove] = FREE; postRemoveHook(); } } }
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;
if (((SeparateKVObjKeyMixing.mix(nullableKeyHashCode(castedKeyToShift)) - indexToShift) & capacityMask) >= shiftDistance) { if (indexToShift > indexToRemove) { firstDelayedRemoved = i;