diff --git a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/MarkerCache.java b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/MarkerCache.java index f8e612759449..17f22b01fb1a 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/MarkerCache.java +++ b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/MarkerCache.java @@ -160,11 +160,11 @@ class MarkerCache { @NotNull private List getSortedInfos() { List infos = ContainerUtil.newArrayListWithCapacity(myPointers.getSize()); - for (Reference reference : myPointers.getReferences()) { + for (Reference reference : myPointers.getReferences()) { if (reference != null) { - SmartPointerEx pointer = reference.get(); + SmartPsiElementPointerImpl pointer = reference.get(); if (pointer != null) { - SmartPointerElementInfo info = ((SmartPsiElementPointerImpl)pointer).getElementInfo(); + SmartPointerElementInfo info = pointer.getElementInfo(); if (info instanceof SelfElementInfo && ((SelfElementInfo)info).hasRange()) { infos.add((SelfElementInfo)info); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerEx.java b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerEx.java index 160f6f064356..5cd39d154288 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerEx.java +++ b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerEx.java @@ -20,7 +20,6 @@ import com.intellij.psi.SmartPsiElementPointer; import org.jetbrains.annotations.Nullable; interface SmartPointerEx extends SmartPsiElementPointer { - void fastenBelt(); @Nullable PsiElement getCachedElement(); diff --git a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java index 73dff2677809..17a739634e86 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPointerManagerImpl.java @@ -44,7 +44,7 @@ import java.util.List; public class SmartPointerManagerImpl extends SmartPointerManager { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.smartPointers.SmartPointerManagerImpl"); private static final Object lock = new Object(); - private static final ReferenceQueue ourQueue = new ReferenceQueue(); + private static final ReferenceQueue ourQueue = new ReferenceQueue(); @SuppressWarnings("unused") private static final LowMemoryWatcher ourWatcher = LowMemoryWatcher.register(new Runnable() { @Override public void run() { @@ -84,16 +84,16 @@ public class SmartPointerManagerImpl extends SmartPointerManager { FilePointersList pointers = getPointers(file); if (pointers != null && !pointers.isEmpty()) { for (PointerReference ref : pointers.references) { - SmartPointerEx pointer = SoftReference.dereference(ref); + SmartPsiElementPointerImpl pointer = SoftReference.dereference(ref); if (pointer != null) { - pointer.fastenBelt(); + pointer.getElementInfo().fastenBelt(); } } } } } - private static final Key> CACHED_SMART_POINTER_KEY = Key.create("CACHED_SMART_POINTER_KEY"); + private static final Key> CACHED_SMART_POINTER_KEY = Key.create("CACHED_SMART_POINTER_KEY"); @Override @NotNull public SmartPsiElementPointer createSmartPsiElementPointer(@NotNull E element) { @@ -109,27 +109,25 @@ public class SmartPointerManagerImpl extends SmartPointerManager { LOG.error("Invalid element:" + element); } processQueue(); - SmartPointerEx pointer = getCachedPointer(element); + SmartPsiElementPointerImpl pointer = getCachedPointer(element); if (pointer == null) { pointer = new SmartPsiElementPointerImpl(myProject, element, containingFile); if (containingFile != null) { - initPointer((SmartPsiElementPointerImpl)pointer, containingFile.getViewProvider().getVirtualFile()); + initPointer(pointer, containingFile.getViewProvider().getVirtualFile()); } - element.putUserData(CACHED_SMART_POINTER_KEY, new SoftReference(pointer)); + element.putUserData(CACHED_SMART_POINTER_KEY, new SoftReference(pointer)); } else { synchronized (lock) { - if (pointer instanceof SmartPsiElementPointerImpl) { - ((SmartPsiElementPointerImpl)pointer).incrementAndGetReferenceCount(1); - } + ((SmartPsiElementPointerImpl)pointer).incrementAndGetReferenceCount(1); } } return pointer; } - private static SmartPointerEx getCachedPointer(@NotNull E element) { - Reference data = element.getUserData(CACHED_SMART_POINTER_KEY); - SmartPointerEx cachedPointer = SoftReference.dereference(data); + private static SmartPsiElementPointerImpl getCachedPointer(@NotNull E element) { + Reference data = element.getUserData(CACHED_SMART_POINTER_KEY); + SmartPsiElementPointerImpl cachedPointer = SoftReference.dereference(data); if (cachedPointer != null) { PsiElement cachedElement = cachedPointer.getElement(); if (cachedElement == null || cachedElement != element) { @@ -274,13 +272,13 @@ public class SmartPointerManagerImpl extends SmartPointerManager { return myPsiDocManager; } - private static class PointerReference extends WeakReference { + private static class PointerReference extends WeakReference { @NotNull private final VirtualFile file; @NotNull private final Key key; - private PointerReference(@NotNull SmartPointerEx pointer, + private PointerReference(@NotNull SmartPsiElementPointerImpl pointer, @NotNull VirtualFile containingFile, - @NotNull ReferenceQueue queue, + @NotNull ReferenceQueue queue, @NotNull Key key) { super(pointer, queue); file = containingFile; @@ -342,7 +340,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager { return size == 0; } - Reference[] getReferences() { + Reference[] getReferences() { return references; } @@ -355,7 +353,7 @@ public class SmartPointerManagerImpl extends SmartPointerManager { return ContainerUtil.mapNotNull(references, new Function() { @Override public SmartPsiElementPointerImpl fun(PointerReference reference) { - return (SmartPsiElementPointerImpl)SoftReference.dereference(reference); + return SoftReference.dereference(reference); } }); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java index 804a1905e374..6c7d24049162 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/smartPointers/SmartPsiElementPointerImpl.java @@ -205,11 +205,6 @@ class SmartPsiElementPointerImpl implements SmartPointerEx return new SelfElementInfo(project, proper, AnchorTypeInfo.obtainInfo(element, LanguageUtil.getRootLanguage(element)), containingFile, false); } - @Override - public void fastenBelt() { - myElementInfo.fastenBelt(); - } - @NotNull SmartPointerElementInfo getElementInfo() { return myElementInfo;