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(); } } }
postRemoveHook(); } else { keys[i] = REMOVED;
postRemoveHook(); } else { keys[i] = REMOVED;
postRemoveHook(); } else { keys[i] = REMOVED;
postRemoveHook(); } else { keys[i] = REMOVED;
postRemoveHook(); } else { keys[i] = REMOVED;
postRemoveHook(); } else { keys[i] = REMOVED;