void () { if (!mySorted) { List<SmartPsiElementPointerImpl<?>> pointers = new ArrayList<>(); processAlivePointers(new CommonProcessors.CollectProcessor<>(pointers)); if (size != pointers.size()) throw new AssertionError(); pointers .sort((p1, p2) -> MarkerCache.INFO_COMPARATOR.compare((SelfElementInfo)p1.getElementInfo(), (SelfElementInfo)p2.getElementInfo())); for (int i = 0; i < pointers.size(); i++) { //noinspection ConstantConditions storePointerReference(references, i, pointers.get(i).pointerReference); } Arrays.fill(references, pointers.size(), nextAvailableIndex, null); nextAvailableIndex = pointers.size(); mySorted = true; } }