Store methodStartLabel in MethodContext
This commit is contained in:
committed by
Andrey Breslav
parent
e4382ff95b
commit
cfbcbb80f5
@@ -284,6 +284,9 @@ public class FunctionCodegen extends ParentCodegenAwareImpl {
|
||||
frameMap.enter(parameter, typeMapper.mapType(parameter));
|
||||
}
|
||||
|
||||
Label methodEntry = new Label();
|
||||
mv.visitLabel(methodEntry);
|
||||
context.setMethodStartLabel(methodEntry);
|
||||
labelsForSharedVars.putAll(createSharedVarsForParameters(mv, functionDescriptor, frameMap));
|
||||
|
||||
if (!JetTypeMapper.isAccessor(functionDescriptor)) {
|
||||
|
||||
@@ -18,17 +18,21 @@ package org.jetbrains.jet.codegen.context;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.asm4.Label;
|
||||
import org.jetbrains.jet.codegen.binding.MutableClosure;
|
||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||
import org.jetbrains.jet.codegen.OwnerKind;
|
||||
import org.jetbrains.jet.codegen.StackValue;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PropertyAccessorDescriptor;
|
||||
|
||||
public class MethodContext extends CodegenContext {
|
||||
|
||||
private Label methodStartLabel;
|
||||
|
||||
public MethodContext(
|
||||
@NotNull FunctionDescriptor contextType,
|
||||
@NotNull OwnerKind contextKind,
|
||||
@@ -71,8 +75,18 @@ public class MethodContext extends CodegenContext {
|
||||
return getParentContext().getOuterExpression(prefix, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Label getMethodStartLabel() {
|
||||
return methodStartLabel;
|
||||
}
|
||||
|
||||
public void setMethodStartLabel(@NotNull Label methodStartLabel) {
|
||||
this.methodStartLabel = methodStartLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Method: " + getContextDescriptor();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user