void (@NotNull List<VcsDirectoryMapping> mappings, @NotNull Mappings newMappedRoots, boolean fireMappingsChangedEvent) { Map<VirtualFile, @NlsSafe String> newMappedRootNames = buildMappingShortNameMap(myProject, newMappedRoots.mappedRoots); boolean mappedRootsChanged; synchronized (myUpdateLock) { if (myMappings != mappings) { Disposer.dispose(newMappedRoots.filePointerDisposable); return; } Disposer.dispose(myFilePointerDisposable); myFilePointerDisposable = newMappedRoots.filePointerDisposable; mappedRootsChanged = !myMappedRoots.equals(newMappedRoots.mappedRoots); if (mappedRootsChanged) { myMappedRoots = newMappedRoots.mappedRoots; myMappedRootsMapping = new RootMapping(newMappedRoots.mappedRoots); myMappedRootShortNames = newMappedRootNames; dumpMappedRootsToLog(); } } if (fireMappingsChangedEvent && mappedRootsChanged) notifyMappingsChanged(); }