From beeb25ea8f463c42dda3c432d761514ff0c6f2be Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 9 Jun 2016 18:32:18 +0200 Subject: [PATCH] java stubs: save some memory by abandoning StringRef-s --- .../impl/java/stubs/JavaClassElementType.java | 4 +-- .../java/stubs/JavaFieldStubElementType.java | 2 +- .../java/stubs/JavaParameterElementType.java | 2 +- .../java/stubs/impl/PsiClassStubImpl.java | 25 ++++++------------- .../java/stubs/impl/PsiFieldStubImpl.java | 15 ++++------- .../java/stubs/impl/PsiParameterStubImpl.java | 11 ++++---- 6 files changed, 22 insertions(+), 37 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java index d461809ed4cf..688a6b0b58ff 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/JavaClassElementType.java @@ -174,14 +174,14 @@ public abstract class JavaClassElementType extends JavaStubElementType extends StubBase implements PsiClassStub { - private final StringRef myQualifiedName; - private final StringRef myName; - private final StringRef myBaseRefText; + private final String myQualifiedName; + private final String myName; + private final String myBaseRefText; private final byte myFlags; private static final int DEPRECATED = 0x01; @@ -50,19 +50,10 @@ public class PsiClassStubImpl extends StubBase implements public PsiClassStubImpl(final JavaClassElementType type, final StubElement parent, - final String qualifiedName, - final String name, + @Nullable final String qualifiedName, + @Nullable final String name, @Nullable final String baseRefText, final byte flags) { - this(type, parent, StringRef.fromString(qualifiedName), StringRef.fromString(name), StringRef.fromString(baseRefText), flags); - } - - public PsiClassStubImpl(final JavaClassElementType type, - final StubElement parent, - final StringRef qualifiedName, - final StringRef name, - final StringRef baseRefText, - final byte flags) { super(parent, type); myQualifiedName = qualifiedName; myName = name; @@ -76,17 +67,17 @@ public class PsiClassStubImpl extends StubBase implements @Override public String getName() { - return StringRef.toString(myName); + return myName; } @Override public String getQualifiedName() { - return StringRef.toString(myQualifiedName); + return myQualifiedName; } @Override public String getBaseClassReferenceText() { - return StringRef.toString(myBaseRefText); + return myBaseRefText; } @Override diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java index ce5355bb46a5..a53374f748c6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiFieldStubImpl.java @@ -22,7 +22,6 @@ import com.intellij.psi.impl.java.stubs.PsiFieldStub; import com.intellij.psi.stubs.StubBase; import com.intellij.psi.stubs.StubElement; import com.intellij.util.BitUtil; -import com.intellij.util.io.StringRef; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -35,16 +34,12 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub private static final byte DEPRECATED_ANNOTATION = 0x04; private static final byte HAS_DOC_COMMENT = 0x08; - private final StringRef myName; + private final String myName; private final TypeInfo myType; - private final StringRef myInitializer; + private final String myInitializer; private final byte myFlags; - public PsiFieldStubImpl(StubElement parent, String name, @NotNull TypeInfo type, @Nullable String initializer, byte flags) { - this(parent, StringRef.fromString(name), type, StringRef.fromString(initializer), flags); - } - - public PsiFieldStubImpl(StubElement parent, StringRef name, @NotNull TypeInfo type, @Nullable StringRef initializer, byte flags) { + public PsiFieldStubImpl(StubElement parent, @Nullable String name, @NotNull TypeInfo type, @Nullable String initializer, byte flags) { super(parent, isEnumConst(flags) ? JavaStubElementTypes.ENUM_CONSTANT : JavaStubElementTypes.FIELD); myName = name; myType = type; @@ -64,7 +59,7 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub @Override public String getInitializerText() { - return StringRef.toString(myInitializer); + return myInitializer; } @Override @@ -93,7 +88,7 @@ public class PsiFieldStubImpl extends StubBase implements PsiFieldStub @Override public String getName() { - return StringRef.toString(myName); + return myName; } public static byte packFlags(boolean isEnumConst, boolean isDeprecated, boolean hasDeprecatedAnnotation, boolean hasDocComment) { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java index ed1ff7a58f08..e4c1cf64fe79 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/java/stubs/impl/PsiParameterStubImpl.java @@ -23,7 +23,6 @@ import com.intellij.psi.impl.java.stubs.PsiParameterStub; import com.intellij.psi.stubs.StubBase; import com.intellij.psi.stubs.StubElement; import com.intellij.util.BitUtil; -import com.intellij.util.io.StringRef; import org.jetbrains.annotations.NotNull; /** @@ -40,15 +39,15 @@ public class PsiParameterStubImpl extends StubBase implements PsiP return flags; } - private StringRef myName; + private String myName; private final TypeInfo myType; private byte myFlags; public PsiParameterStubImpl(StubElement parent, @NotNull String name, @NotNull TypeInfo type, boolean ellipsis, boolean generatedName) { - this(parent, StringRef.fromString(name), type, packFlags(ellipsis, generatedName)); + this(parent, name, type, packFlags(ellipsis, generatedName)); } - public PsiParameterStubImpl(StubElement parent, @NotNull StringRef name, @NotNull TypeInfo type, byte flags) { + public PsiParameterStubImpl(StubElement parent, @NotNull String name, @NotNull TypeInfo type, byte flags) { super(parent, JavaStubElementTypes.PARAMETER); myName = name; myType = type; @@ -79,11 +78,11 @@ public class PsiParameterStubImpl extends StubBase implements PsiP @NotNull @Override public String getName() { - return StringRef.toString(myName); + return myName; } public void setName(String name) { - myName = StringRef.fromString(name); + myName = name; myFlags = BitUtil.set(myFlags, GENERATED_NAME, false); }