Minor, inline method
This commit is contained in:
@@ -32,7 +32,10 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
|||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.jet.lang.resolve.java.*;
|
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaVisibilities;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType;
|
||||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaCallableMemberDescriptor;
|
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaCallableMemberDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
@@ -321,22 +324,6 @@ public class AsmUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void genInitSingletonField(Type classAsmType, InstructionAdapter iv) {
|
|
||||||
genInitSingletonField(classAsmType, JvmAbi.INSTANCE_FIELD, classAsmType, iv);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void genInitSingletonField(FieldInfo info, InstructionAdapter iv) {
|
|
||||||
assert info.isStatic();
|
|
||||||
genInitSingletonField(info.getOwnerType(), info.getFieldName(), info.getFieldType(), iv);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void genInitSingletonField(Type fieldOwnerType, String fieldName, Type fieldAsmType, InstructionAdapter iv) {
|
|
||||||
iv.anew(fieldAsmType);
|
|
||||||
iv.dup();
|
|
||||||
iv.invokespecial(fieldAsmType.getInternalName(), "<init>", "()V");
|
|
||||||
iv.putstatic(fieldOwnerType.getInternalName(), fieldName, fieldAsmType.getDescriptor());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int genAssignInstanceFieldFromParam(FieldInfo info, int index, InstructionAdapter iv) {
|
public static int genAssignInstanceFieldFromParam(FieldInfo info, int index, InstructionAdapter iv) {
|
||||||
assert !info.isStatic();
|
assert !info.isStatic();
|
||||||
Type fieldType = info.getFieldType();
|
Type fieldType = info.getFieldType();
|
||||||
|
|||||||
@@ -162,7 +162,10 @@ public class ClosureCodegen extends ParentCodegenAwareImpl {
|
|||||||
|
|
||||||
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
if (state.getClassBuilderMode() == ClassBuilderMode.FULL) {
|
||||||
mv.visitCode();
|
mv.visitCode();
|
||||||
genInitSingletonField(asmType, iv);
|
iv.anew(asmType);
|
||||||
|
iv.dup();
|
||||||
|
iv.invokespecial(asmType.getInternalName(), "<init>", "()V");
|
||||||
|
iv.putstatic(asmType.getInternalName(), JvmAbi.INSTANCE_FIELD, asmType.getDescriptor());
|
||||||
mv.visitInsn(RETURN);
|
mv.visitInsn(RETURN);
|
||||||
FunctionCodegen.endVisit(mv, "<clinit>", fun);
|
FunctionCodegen.endVisit(mv, "<clinit>", fun);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user