From d82b8fa9b3fc4f07c99b8020d88a144609c1454a Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 3 Nov 2015 11:21:38 +0100 Subject: [PATCH] don't return anything from SmartPointerManager.removePointer; it's not used anyway --- .../smartPointers/SmartPsiElementPointersTest.java | 9 +++------ .../src/com/intellij/psi/SmartPointerManager.java | 7 ++++++- .../impl/smartPointers/SmartPointerManagerImpl.java | 12 +++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/smartPointers/SmartPsiElementPointersTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/smartPointers/SmartPsiElementPointersTest.java index d87f5d48ce8e..469f5a0873a9 100644 --- a/java/java-tests/testSrc/com/intellij/psi/impl/smartPointers/SmartPsiElementPointersTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/impl/smartPointers/SmartPsiElementPointersTest.java @@ -467,12 +467,10 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase { assertNotNull(pointer1.getRange()); - boolean removed2 = smartPointerManager.removePointer(pointer2); - assertFalse(removed2); + smartPointerManager.removePointer(pointer2); assertNotNull(pointer1.getRange()); - boolean removed1 = smartPointerManager.removePointer(pointer1); - assertTrue(removed1); + smartPointerManager.removePointer(pointer1); assertNull(pointer1.getRange()); } @@ -494,8 +492,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase { assertEquals(Byte.MAX_VALUE, pointer1.incrementAndGetReferenceCount(0)); for (int i=0; i<1100; i++) { - boolean removed1 = smartPointerManager.removePointer(pointer1); - assertFalse(removed1); + smartPointerManager.removePointer(pointer1); Assert.assertNotNull(pointer1.getRange()); } } diff --git a/platform/core-api/src/com/intellij/psi/SmartPointerManager.java b/platform/core-api/src/com/intellij/psi/SmartPointerManager.java index 1b8f450b180d..742071b04373 100644 --- a/platform/core-api/src/com/intellij/psi/SmartPointerManager.java +++ b/platform/core-api/src/com/intellij/psi/SmartPointerManager.java @@ -69,5 +69,10 @@ public abstract class SmartPointerManager { * @return true if both pointers point to the same PSI element. */ public abstract boolean pointToTheSameElement(@NotNull SmartPsiElementPointer pointer1, @NotNull SmartPsiElementPointer pointer2); - public abstract boolean removePointer(@NotNull SmartPsiElementPointer pointer); + + /** + * Disposes a smart pointer and frees the resources associated with it. Calling this method is not obligatory: pointers are + * freed correctly when they're not used anymore. But disposing the pointers explicitly might be beneficial for performance. + */ + public abstract void removePointer(@NotNull SmartPsiElementPointer pointer); } 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 d7ad67908b04..73dff2677809 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 @@ -180,9 +180,9 @@ public class SmartPointerManagerImpl extends SmartPointerManager { } @Override - public boolean removePointer(@NotNull SmartPsiElementPointer pointer) { + public void removePointer(@NotNull SmartPsiElementPointer pointer) { if (!(pointer instanceof SmartPsiElementPointerImpl)) { - return false; + return; } PsiFile containingFile = pointer.getContainingFile(); synchronized (lock) { @@ -196,18 +196,16 @@ public class SmartPointerManagerImpl extends SmartPointerManager { SmartPointerElementInfo info = ((SmartPsiElementPointerImpl)pointer).getElementInfo(); info.cleanup(); - if (containingFile == null) return false; + if (containingFile == null) return; VirtualFile vFile = containingFile.getViewProvider().getVirtualFile(); FilePointersList pointers = getPointers(vFile); - if (pointers == null) return false; - boolean result = pointers.remove(pointer); + if (pointers == null) return; + pointers.remove(pointer); if (pointers.isEmpty()) { vFile.putUserData(POINTERS_KEY, null); } - return result; } } - return false; } @Nullable