mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-78720
This commit is contained in:
@@ -18,7 +18,6 @@ package com.intellij.psi.impl.smartPointers;
|
||||
import com.intellij.openapi.editor.RangeMarker;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.SmartPsiElementPointer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public interface SmartPointerEx<E extends PsiElement> extends SmartPsiElementPointer<E> {
|
||||
@@ -27,6 +26,5 @@ public interface SmartPointerEx<E extends PsiElement> extends SmartPsiElementPoi
|
||||
|
||||
void unfastenBelt(int offset);
|
||||
|
||||
@NotNull
|
||||
SmartPointerElementInfo getElementInfo();
|
||||
PsiElement getCachedElement();
|
||||
}
|
||||
|
||||
+5
-3
@@ -179,9 +179,11 @@ public class SmartPointerManagerImpl extends SmartPointerManager {
|
||||
private static <E extends PsiElement> SmartPsiElementPointer<E> getCachedPointer(@NotNull E element) {
|
||||
Reference<SmartPsiElementPointer> data = element.getUserData(CACHED_SMART_POINTER_KEY);
|
||||
SmartPsiElementPointer cachedPointer = data == null ? null : data.get();
|
||||
if (cachedPointer instanceof SmartPointerEx
|
||||
&& ((SmartPointerEx)cachedPointer).getElementInfo().restoreElement() != element) {
|
||||
return null;
|
||||
if (cachedPointer instanceof SmartPointerEx) {
|
||||
PsiElement cachedElement = ((SmartPointerEx)cachedPointer).getCachedElement();
|
||||
if (cachedElement != null && cachedElement != element) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return cachedPointer;
|
||||
}
|
||||
|
||||
+1
-2
@@ -106,7 +106,7 @@ class SmartPsiElementPointerImpl<E extends PsiElement> implements SmartPointerEx
|
||||
myElement = element == null ? null : new SoftReference<E>(element);
|
||||
}
|
||||
|
||||
private E getCachedElement() {
|
||||
public E getCachedElement() {
|
||||
Reference<E> ref = myElement;
|
||||
return ref == null ? null : ref.get();
|
||||
}
|
||||
@@ -203,7 +203,6 @@ class SmartPsiElementPointerImpl<E extends PsiElement> implements SmartPointerEx
|
||||
myElementInfo.fastenBelt(offset, cachedRangeMarker);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public SmartPointerElementInfo getElementInfo() {
|
||||
return myElementInfo;
|
||||
|
||||
Reference in New Issue
Block a user