mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java stubs: save some memory by abandoning StringRef-s
This commit is contained in:
@@ -174,14 +174,14 @@ public abstract class JavaClassElementType extends JavaStubElementType<PsiClassS
|
||||
StringRef qname = dataStream.readName();
|
||||
int languageLevelId = dataStream.readByte();
|
||||
StringRef sourceFileName = dataStream.readName();
|
||||
PsiClassStubImpl classStub = new PsiClassStubImpl(type, parentStub, qname, name, null, flags);
|
||||
PsiClassStubImpl classStub = new PsiClassStubImpl(type, parentStub, StringRef.toString(qname), StringRef.toString(name), null, flags);
|
||||
classStub.setLanguageLevel(LanguageLevel.values()[languageLevelId]);
|
||||
classStub.setSourceFileName(sourceFileName);
|
||||
return classStub;
|
||||
}
|
||||
else {
|
||||
StringRef baseRef = dataStream.readName();
|
||||
return new PsiClassStubImpl(type, parentStub, null, null, baseRef, flags);
|
||||
return new PsiClassStubImpl(type, parentStub, null, null, StringRef.toString(baseRef), flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@ public abstract class JavaFieldStubElementType extends JavaStubElementType<PsiFi
|
||||
TypeInfo type = TypeInfo.readTYPE(dataStream);
|
||||
StringRef initializerText = dataStream.readName();
|
||||
byte flags = dataStream.readByte();
|
||||
return new PsiFieldStubImpl(parentStub, name, type, initializerText, flags);
|
||||
return new PsiFieldStubImpl(parentStub, StringRef.toString(name), type, StringRef.toString(initializerText), flags);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ public class JavaParameterElementType extends JavaStubElementType<PsiParameterSt
|
||||
if (name == null) throw new IOException("corrupted indices");
|
||||
TypeInfo type = TypeInfo.readTYPE(dataStream);
|
||||
byte flags = dataStream.readByte();
|
||||
return new PsiParameterStubImpl(parentStub, name, type, flags);
|
||||
return new PsiParameterStubImpl(parentStub, name.toString(), type, flags);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,9 +31,9 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @author max
|
||||
*/
|
||||
public class PsiClassStubImpl<T extends PsiClass> extends StubBase<T> implements PsiClassStub<T> {
|
||||
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<T extends PsiClass> extends StubBase<T> 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<T extends PsiClass> extends StubBase<T> 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
|
||||
|
||||
@@ -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<PsiField> 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<PsiField> implements PsiFieldStub
|
||||
|
||||
@Override
|
||||
public String getInitializerText() {
|
||||
return StringRef.toString(myInitializer);
|
||||
return myInitializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -93,7 +88,7 @@ public class PsiFieldStubImpl extends StubBase<PsiField> implements PsiFieldStub
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return StringRef.toString(myName);
|
||||
return myName;
|
||||
}
|
||||
|
||||
public static byte packFlags(boolean isEnumConst, boolean isDeprecated, boolean hasDeprecatedAnnotation, boolean hasDocComment) {
|
||||
|
||||
+5
-6
@@ -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<PsiParameter> 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<PsiParameter> 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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user