void (@NotNull Set<? super String> result, @NotNull CharSequence text, int startOffset, int endOffset, @NotNull FontFallbackIterator ffi) { if (startOffset >= endOffset) return; ffi.start(text, startOffset, endOffset); while (!ffi.atEnd()) { ProgressManager.checkCanceled(); Font font = ffi.getFont(); List<String> components = null; try { components = AccessingInternalJdkFontApi.getRelevantComponents(font, text, ffi.getStart(), ffi.getEnd()); } catch (Throwable e) { LOG.debug(e); } if (components == null) { result.add(font.getFontName() + " (*)"); } else { result.addAll(components); } ffi.advance(); } }