From a4d4c3efbb6ef43ba059331032f6f7779f4b5d23 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 13 May 2013 17:59:17 +0200 Subject: [PATCH] remove NewVirtualFile.{get,set}Flag --- .../util/indexing/FileBasedIndexImpl.java | 15 +++---- .../openapi/vfs/newvfs/NewVirtualFile.java | 3 -- .../vfs/newvfs/impl/VirtualDirectoryImpl.java | 7 ++- .../newvfs/impl/VirtualFileSystemEntry.java | 43 ++++++++----------- 4 files changed, 29 insertions(+), 39 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index cb7ba3e25f6f..1ee9cd81b8f8 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -52,6 +52,7 @@ import com.intellij.openapi.vfs.newvfs.BulkFileListener; import com.intellij.openapi.vfs.newvfs.ManagingFS; import com.intellij.openapi.vfs.newvfs.NewVirtualFile; import com.intellij.openapi.vfs.newvfs.events.VFileEvent; +import com.intellij.openapi.vfs.newvfs.impl.VirtualFileSystemEntry; import com.intellij.openapi.vfs.newvfs.persistent.FlushingDaemon; import com.intellij.openapi.vfs.newvfs.persistent.PersistentFS; import com.intellij.psi.*; @@ -119,8 +120,6 @@ public class FileBasedIndexImpl extends FileBasedIndex { private final ConcurrentHashSet> myUpToDateIndices = new ConcurrentHashSet>(); private final Map myTransactionMap = new THashMap(); - private static final int ALREADY_PROCESSED = 0x04000000; - @Nullable private final String myConfigPath; @Nullable private final String myLogPath; private final boolean myIsUnitTestMode; @@ -2175,7 +2174,7 @@ public class FileBasedIndexImpl extends FileBasedIndex { return true; } if (!file.isDirectory()) { - if (file instanceof NewVirtualFile && ((NewVirtualFile)file).getFlag(ALREADY_PROCESSED)) { + if (file instanceof VirtualFileSystemEntry && ((VirtualFileSystemEntry)file).isFileIndexed()) { return true; } @@ -2223,8 +2222,8 @@ public class FileBasedIndexImpl extends FileBasedIndex { } IndexingStamp.flushCache(file); - if (oldStuff && file instanceof NewVirtualFile) { - ((NewVirtualFile)file).setFlag(ALREADY_PROCESSED, true); + if (oldStuff && file instanceof VirtualFileSystemEntry) { + ((VirtualFileSystemEntry)file).setFileIndexed(true); } } finally { @@ -2325,16 +2324,16 @@ public class FileBasedIndexImpl extends FileBasedIndex { } private static void cleanProcessedFlag(@NotNull final VirtualFile file) { - if (!(file instanceof NewVirtualFile)) return; + if (!(file instanceof VirtualFileSystemEntry)) return; - final NewVirtualFile nvf = (NewVirtualFile)file; + final VirtualFileSystemEntry nvf = (VirtualFileSystemEntry)file; if (file.isDirectory()) { for (VirtualFile child : nvf.getCachedChildren()) { cleanProcessedFlag(child); } } else { - nvf.setFlag(ALREADY_PROCESSED, false); + nvf.setFileIndexed(false); } } diff --git a/platform/platform-api/src/com/intellij/openapi/vfs/newvfs/NewVirtualFile.java b/platform/platform-api/src/com/intellij/openapi/vfs/newvfs/NewVirtualFile.java index e7091dab7d0e..b3b20bf2c95d 100644 --- a/platform/platform-api/src/com/intellij/openapi/vfs/newvfs/NewVirtualFile.java +++ b/platform/platform-api/src/com/intellij/openapi/vfs/newvfs/NewVirtualFile.java @@ -127,7 +127,4 @@ public abstract class NewVirtualFile extends VirtualFile implements VirtualFileW @NotNull public abstract Iterable iterInDbChildren(); - public abstract void setFlag(int flagMask, boolean value); - - public abstract boolean getFlag(int flagMask); } diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java index 9d46d0885480..f51b26def9e9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualDirectoryImpl.java @@ -659,12 +659,11 @@ public class VirtualDirectoryImpl extends VirtualFileSystemEntry { }); } - private static final int CHILDREN_CACHED = 0x08000000; - public synchronized boolean allChildrenLoaded() { - return getFlag(CHILDREN_CACHED); + public boolean allChildrenLoaded() { + return getFlagInt(CHILDREN_CACHED); } private void setChildrenLoaded() { - setFlag(CHILDREN_CACHED, true); + setFlagInt(CHILDREN_CACHED, true); } @NotNull diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java index 9e1b7d9bc73e..1c890093302d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/impl/VirtualFileSystemEntry.java @@ -49,12 +49,14 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { private static final Key SYMLINK_TARGET = Key.create("local.vfs.symlink.target"); - private static final int DIRTY_FLAG = 0x10000000; - private static final int IS_SYMLINK_FLAG = 0x20000000; + private static final int DIRTY_FLAG = 0x10000000; + private static final int IS_SYMLINK_FLAG = 0x20000000; private static final int HAS_SYMLINK_FLAG = 0x40000000; - private static final int IS_SPECIAL_FLAG = 0x80000000; - private static final int RESERVED_FLAGS_MASK = 0xf0000000; - private static final int ALL_FLAGS_MASK = 0xff000000; + private static final int IS_SPECIAL_FLAG = 0x80000000; + private static final int INDEXED_FLAG = 0x04000000; + static final int CHILDREN_CACHED = 0x08000000; + private static final int ALL_FLAGS_MASK = + DIRTY_FLAG | IS_SYMLINK_FLAG | HAS_SYMLINK_FLAG | IS_SPECIAL_FLAG | INDEXED_FLAG | CHILDREN_CACHED; private volatile int myNameId; private volatile VirtualDirectoryImpl myParent; @@ -133,28 +135,13 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { myFlags = (myFlags & ALL_FLAGS_MASK) | ((int)modificationStamp & ~ALL_FLAGS_MASK); } - @Override - public boolean getFlag(int mask) { - checkCustomFlagRange(mask); - return getFlagInt(mask); - } - - private static void checkCustomFlagRange(int mask) { - assert (mask & RESERVED_FLAGS_MASK) == 0 : "Mask '" + Integer.toBinaryString(mask) + "' is in reserved range."; - assert (mask & ~ALL_FLAGS_MASK) == 0 : "Mask '" + Integer.toBinaryString(mask) + "' is outside flag range."; - } - - private boolean getFlagInt(int mask) { + boolean getFlagInt(int mask) { + assert (mask & ~ALL_FLAGS_MASK) == 0 : "Unexpected flag"; return (myFlags & mask) != 0; } - @Override - public void setFlag(int mask, boolean value) { - checkCustomFlagRange(mask); - setFlagInt(mask, value); - } - - private synchronized void setFlagInt(int mask, boolean value) { + synchronized void setFlagInt(int mask, boolean value) { + assert (mask & ~ALL_FLAGS_MASK) == 0 : "Unexpected flag"; if (value) { myFlags |= mask; } @@ -163,6 +150,14 @@ public abstract class VirtualFileSystemEntry extends NewVirtualFile { } } + public boolean isFileIndexed() { + return getFlagInt(INDEXED_FLAG); + } + + public void setFileIndexed(boolean indexed) { + setFlagInt(INDEXED_FLAG, indexed); + } + @Override public void markClean() { setFlagInt(DIRTY_FLAG, false);