VarRemapper -> LocalVarRemapper
This commit is contained in:
@@ -215,7 +215,7 @@ public class InlineCodegen implements ParentCodegenAware, CallGenerator {
|
|||||||
|
|
||||||
MethodInliner inliner = new MethodInliner(node, parameters, info, new FieldRemapper(null, null, parameters), isSameModule, "Method inlining " + call.getCallElement().getText()); //with captured
|
MethodInliner inliner = new MethodInliner(node, parameters, info, new FieldRemapper(null, null, parameters), isSameModule, "Method inlining " + call.getCallElement().getText()); //with captured
|
||||||
|
|
||||||
VarRemapper remapper = new VarRemapper(parameters, initialFrameSize);
|
LocalVarRemapper remapper = new LocalVarRemapper(parameters, initialFrameSize);
|
||||||
|
|
||||||
return inliner.doInline(codegen.v, remapper);
|
return inliner.doInline(codegen.v, remapper);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class InliningContext {
|
|||||||
|
|
||||||
public final List<ConstructorInvocation> constructorInvocation;
|
public final List<ConstructorInvocation> constructorInvocation;
|
||||||
|
|
||||||
public final VarRemapper remapper;
|
public final LocalVarRemapper remapper;
|
||||||
|
|
||||||
public final GenerationState state;
|
public final GenerationState state;
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ public class InliningContext {
|
|||||||
Map<Integer, LambdaInfo> map,
|
Map<Integer, LambdaInfo> map,
|
||||||
List<InvokeCall> accesses,
|
List<InvokeCall> accesses,
|
||||||
List<ConstructorInvocation> invocation,
|
List<ConstructorInvocation> invocation,
|
||||||
VarRemapper remapper,
|
LocalVarRemapper remapper,
|
||||||
GenerationState state,
|
GenerationState state,
|
||||||
NameGenerator nameGenerator,
|
NameGenerator nameGenerator,
|
||||||
CodegenContext startContext,
|
CodegenContext startContext,
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public class LambdaTransformer {
|
|||||||
|
|
||||||
MethodInliner inliner = new MethodInliner(invoke, parameters, inliningContext.subInline(inliningContext.nameGenerator.subGenerator("lambda")),
|
MethodInliner inliner = new MethodInliner(invoke, parameters, inliningContext.subInline(inliningContext.nameGenerator.subGenerator("lambda")),
|
||||||
remapper, isSameModule, "Transformer for " + invocation.getOwnerInternalName());
|
remapper, isSameModule, "Transformer for " + invocation.getOwnerInternalName());
|
||||||
InlineResult result = inliner.doInline(invokeVisitor, new VarRemapper(parameters, 0), false);
|
InlineResult result = inliner.doInline(invokeVisitor, new LocalVarRemapper(parameters, 0), false);
|
||||||
invokeVisitor.visitMaxs(-1, -1);
|
invokeVisitor.visitMaxs(-1, -1);
|
||||||
|
|
||||||
generateConstructorAndFields(classBuilder, builder, invocation);
|
generateConstructorAndFields(classBuilder, builder, invocation);
|
||||||
|
|||||||
+3
-3
@@ -25,9 +25,9 @@ import org.jetbrains.asm4.commons.InstructionAdapter;
|
|||||||
import org.jetbrains.jet.codegen.StackValue;
|
import org.jetbrains.jet.codegen.StackValue;
|
||||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||||
|
|
||||||
import static org.jetbrains.jet.codegen.inline.VarRemapper.RemapStatus.*;
|
import static org.jetbrains.jet.codegen.inline.LocalVarRemapper.RemapStatus.*;
|
||||||
|
|
||||||
public class VarRemapper {
|
public class LocalVarRemapper {
|
||||||
|
|
||||||
private final int allParamsSize;
|
private final int allParamsSize;
|
||||||
private final Parameters params;
|
private final Parameters params;
|
||||||
@@ -37,7 +37,7 @@ public class VarRemapper {
|
|||||||
|
|
||||||
private final int additionalShift;
|
private final int additionalShift;
|
||||||
|
|
||||||
public VarRemapper(Parameters params, int additionalShift) {
|
public LocalVarRemapper(Parameters params, int additionalShift) {
|
||||||
this.additionalShift = additionalShift;
|
this.additionalShift = additionalShift;
|
||||||
this.allParamsSize = params.totalSize();
|
this.allParamsSize = params.totalSize();
|
||||||
this.params = params;
|
this.params = params;
|
||||||
@@ -72,13 +72,13 @@ public class MethodInliner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public InlineResult doInline(MethodVisitor adapter, VarRemapper remapper) {
|
public InlineResult doInline(MethodVisitor adapter, LocalVarRemapper remapper) {
|
||||||
return doInline(adapter, remapper, true);
|
return doInline(adapter, remapper, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InlineResult doInline(
|
public InlineResult doInline(
|
||||||
MethodVisitor adapter,
|
MethodVisitor adapter,
|
||||||
VarRemapper remapper,
|
LocalVarRemapper remapper,
|
||||||
boolean remapReturn
|
boolean remapReturn
|
||||||
) {
|
) {
|
||||||
//analyze body
|
//analyze body
|
||||||
@@ -170,7 +170,7 @@ public class MethodInliner {
|
|||||||
newCapturedRemapper, true /*cause all calls in same module as lambda*/,
|
newCapturedRemapper, true /*cause all calls in same module as lambda*/,
|
||||||
"Lambda inlining " + info.getLambdaClassType().getInternalName());
|
"Lambda inlining " + info.getLambdaClassType().getInternalName());
|
||||||
|
|
||||||
VarRemapper remapper = new VarRemapper(lambdaParameters, valueParamShift);
|
LocalVarRemapper remapper = new LocalVarRemapper(lambdaParameters, valueParamShift);
|
||||||
InlineResult lambdaResult = inliner.doInline(this.mv, remapper);//TODO add skipped this and receiver
|
InlineResult lambdaResult = inliner.doInline(this.mv, remapper);//TODO add skipped this and receiver
|
||||||
result.addAllClassesToRemove(lambdaResult);
|
result.addAllClassesToRemove(lambdaResult);
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class RemapVisitor extends InstructionAdapter {
|
|||||||
|
|
||||||
private final Label end;
|
private final Label end;
|
||||||
|
|
||||||
private final VarRemapper remapper;
|
private final LocalVarRemapper remapper;
|
||||||
|
|
||||||
private final boolean remapReturn;
|
private final boolean remapReturn;
|
||||||
|
|
||||||
@@ -39,14 +39,14 @@ public class RemapVisitor extends InstructionAdapter {
|
|||||||
protected RemapVisitor(
|
protected RemapVisitor(
|
||||||
MethodVisitor mv,
|
MethodVisitor mv,
|
||||||
Label end,
|
Label end,
|
||||||
VarRemapper varRemapper,
|
LocalVarRemapper localVarRemapper,
|
||||||
boolean remapReturn,
|
boolean remapReturn,
|
||||||
FieldRemapper nodeRemapper
|
FieldRemapper nodeRemapper
|
||||||
) {
|
) {
|
||||||
super(InlineCodegenUtil.API, mv);
|
super(InlineCodegenUtil.API, mv);
|
||||||
this.instructionAdapter = new InstructionAdapter(mv);
|
this.instructionAdapter = new InstructionAdapter(mv);
|
||||||
this.end = end;
|
this.end = end;
|
||||||
this.remapper = varRemapper;
|
this.remapper = localVarRemapper;
|
||||||
this.remapReturn = remapReturn;
|
this.remapReturn = remapReturn;
|
||||||
this.nodeRemapper = nodeRemapper;
|
this.nodeRemapper = nodeRemapper;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user