Rename NameTable -> StringTable in serialization

Since almost the beginning, it was also used to store arbitrary strings, not
just names
This commit is contained in:
Alexander Udalov
2014-12-01 11:58:20 +03:00
parent 66774c0fd1
commit 9bd815126b
10 changed files with 57 additions and 55 deletions
@@ -237,7 +237,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
ProtoBuf.Class classProto = serializer.classProto(descriptor).build();
ClassData data = new ClassData(createNameResolver(serializer.getNameTable()), classProto);
ClassData data = new ClassData(createNameResolver(serializer.getStringTable()), classProto);
AnnotationVisitor av = v.getVisitor().visitAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_CLASS), true);
//noinspection ConstantConditions
@@ -19,8 +19,6 @@ package org.jetbrains.jet.codegen;
import com.intellij.openapi.util.Pair;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.org.objectweb.asm.Type;
import org.jetbrains.org.objectweb.asm.commons.Method;
import org.jetbrains.jet.descriptors.serialization.*;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedPropertyDescriptor;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedSimpleFunctionDescriptor;
@@ -28,6 +26,8 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.kotlin.SignatureDeserializer;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.org.objectweb.asm.Type;
import org.jetbrains.org.objectweb.asm.commons.Method;
import java.util.Arrays;
@@ -44,17 +44,17 @@ public class JavaSerializerExtension extends SerializerExtension {
public void serializeCallable(
@NotNull CallableMemberDescriptor callable,
@NotNull ProtoBuf.Callable.Builder proto,
@NotNull NameTable nameTable
@NotNull StringTable stringTable
) {
saveSignature(callable, proto, nameTable);
saveImplClassName(callable, proto, nameTable);
saveSignature(callable, proto, stringTable);
saveImplClassName(callable, proto, stringTable);
}
@Override
public void serializeValueParameter(
@NotNull ValueParameterDescriptor descriptor,
@NotNull ProtoBuf.Callable.ValueParameter.Builder proto,
@NotNull NameTable nameTable
@NotNull StringTable stringTable
) {
Integer index = bindings.get(INDEX_FOR_VALUE_PARAMETER, descriptor);
if (index != null) {
@@ -65,9 +65,9 @@ public class JavaSerializerExtension extends SerializerExtension {
private void saveSignature(
@NotNull CallableMemberDescriptor callable,
@NotNull ProtoBuf.Callable.Builder proto,
@NotNull NameTable nameTable
@NotNull StringTable stringTable
) {
SignatureSerializer signatureSerializer = new SignatureSerializer(nameTable);
SignatureSerializer signatureSerializer = new SignatureSerializer(stringTable);
if (callable instanceof FunctionDescriptor) {
JavaProtoBuf.JavaMethodSignature signature;
if (callable instanceof DeserializedSimpleFunctionDescriptor) {
@@ -128,19 +128,19 @@ public class JavaSerializerExtension extends SerializerExtension {
private void saveImplClassName(
@NotNull CallableMemberDescriptor callable,
@NotNull ProtoBuf.Callable.Builder proto,
@NotNull NameTable nameTable
@NotNull StringTable stringTable
) {
String name = bindings.get(IMPL_CLASS_NAME_FOR_CALLABLE, callable);
if (name != null) {
proto.setExtension(JavaProtoBuf.implClassName, nameTable.getSimpleNameIndex(Name.identifier(name)));
proto.setExtension(JavaProtoBuf.implClassName, stringTable.getSimpleNameIndex(Name.identifier(name)));
}
}
private static class SignatureSerializer {
private final NameTable nameTable;
private final StringTable stringTable;
public SignatureSerializer(@NotNull NameTable nameTable) {
this.nameTable = nameTable;
public SignatureSerializer(@NotNull StringTable stringTable) {
this.stringTable = stringTable;
}
@NotNull
@@ -156,7 +156,7 @@ public class JavaSerializerExtension extends SerializerExtension {
public JavaProtoBuf.JavaMethodSignature methodSignature(@NotNull Method method) {
JavaProtoBuf.JavaMethodSignature.Builder signature = JavaProtoBuf.JavaMethodSignature.newBuilder();
signature.setName(nameTable.getSimpleNameIndex(Name.guess(method.getName())));
signature.setName(stringTable.getStringIndex(method.getName()));
signature.setReturnType(type(method.getReturnType()));
@@ -231,7 +231,7 @@ public class JavaSerializerExtension extends SerializerExtension {
@NotNull
public JavaProtoBuf.JavaFieldSignature fieldSignature(@NotNull Type type, @NotNull String name, boolean isStaticInOuter) {
JavaProtoBuf.JavaFieldSignature.Builder signature = JavaProtoBuf.JavaFieldSignature.newBuilder();
signature.setName(nameTable.getSimpleNameIndex(Name.guess(name)));
signature.setName(stringTable.getStringIndex(name));
signature.setType(type(type));
if (isStaticInOuter) {
signature.setIsStaticInOuter(true);
@@ -255,7 +255,7 @@ public class JavaSerializerExtension extends SerializerExtension {
if (type.getSort() == Type.OBJECT) {
FqName fqName = internalNameToFqName(type.getInternalName());
builder.setClassFqName(nameTable.getFqNameIndex(fqName));
builder.setClassFqName(stringTable.getFqNameIndex(fqName));
}
else {
builder.setPrimitiveType(JavaProtoBuf.JavaType.PrimitiveType.valueOf(type.getSort()));
@@ -280,7 +280,7 @@ public class PackageCodegen {
if (packageProto.getMemberCount() == 0) return;
PackageData data = new PackageData(createNameResolver(serializer.getNameTable()), packageProto);
PackageData data = new PackageData(createNameResolver(serializer.getStringTable()), packageProto);
AnnotationVisitor av = v.newAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_PACKAGE), true);
av.visit(JvmAnnotationNames.ABI_VERSION_FIELD_NAME, JvmAbi.VERSION);