mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
take read action in smart pointer comparison (EA-77398 - assert: PsiFileImpl.getStubTree)
This commit is contained in:
@@ -227,15 +227,19 @@ public class SelfElementInfo extends SmartPointerElementInfo {
|
||||
@Override
|
||||
public boolean pointsToTheSameElementAs(@NotNull final SmartPointerElementInfo other) {
|
||||
if (other instanceof SelfElementInfo) {
|
||||
SelfElementInfo otherInfo = (SelfElementInfo)other;
|
||||
final SelfElementInfo otherInfo = (SelfElementInfo)other;
|
||||
if (!getVirtualFile().equals(other.getVirtualFile()) || myType != otherInfo.myType) return false;
|
||||
|
||||
Segment range1 = getPsiRange();
|
||||
Segment range2 = otherInfo.getPsiRange();
|
||||
return range1 != null && range2 != null
|
||||
&& range1.getStartOffset() == range2.getStartOffset()
|
||||
&& range1.getEndOffset() == range2.getEndOffset()
|
||||
;
|
||||
return ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() {
|
||||
@Override
|
||||
public Boolean compute() {
|
||||
Segment range1 = getPsiRange();
|
||||
Segment range2 = otherInfo.getPsiRange();
|
||||
return range1 != null && range2 != null
|
||||
&& range1.getStartOffset() == range2.getStartOffset()
|
||||
&& range1.getEndOffset() == range2.getEndOffset();
|
||||
}
|
||||
});
|
||||
}
|
||||
return areRestoredElementsEqual(other);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user