Get rid of ValueParameterDescriptor in 'afterParameterPut' fun

This commit is contained in:
Michael Bogdanov
2016-01-18 14:40:41 +03:00
parent aacf2ad68c
commit 84dbdf2ccb
6 changed files with 11 additions and 18 deletions
@@ -75,10 +75,9 @@ public class CallBasedArgumentGenerator extends ArgumentGenerator {
@Override @Override
protected void generateDefault(int i, @NotNull DefaultValueArgument argument) { protected void generateDefault(int i, @NotNull DefaultValueArgument argument) {
ValueParameterDescriptor parameter = valueParameters.get(i);
Type type = valueParameterTypes.get(i); Type type = valueParameterTypes.get(i);
pushDefaultValueOnStack(type, codegen.v); pushDefaultValueOnStack(type, codegen.v);
callGenerator.afterParameterPut(type, null, parameter, i); callGenerator.afterParameterPut(type, null, i);
} }
@Override @Override
@@ -86,7 +85,7 @@ public class CallBasedArgumentGenerator extends ArgumentGenerator {
ValueParameterDescriptor parameter = valueParameters.get(i); ValueParameterDescriptor parameter = valueParameters.get(i);
Type type = valueParameterTypes.get(i); Type type = valueParameterTypes.get(i);
codegen.genVarargs(argument, parameter.getType()); codegen.genVarargs(argument, parameter.getType());
callGenerator.afterParameterPut(type, null, parameter, i); callGenerator.afterParameterPut(type, null, i);
} }
@Override @Override
@@ -46,7 +46,6 @@ abstract class CallGenerator {
override fun afterParameterPut( override fun afterParameterPut(
type: Type, type: Type,
stackValue: StackValue?, stackValue: StackValue?,
valueParameterDescriptor: ValueParameterDescriptor,
parameterIndex: Int) { parameterIndex: Int) {
} }
@@ -70,7 +69,7 @@ abstract class CallGenerator {
} }
override fun putValueIfNeeded( override fun putValueIfNeeded(
valueParameterDescriptor: ValueParameterDescriptor?, parameterType: Type, value: StackValue) { parameterType: Type, value: StackValue) {
value.put(value.type, codegen.v) value.put(value.type, codegen.v)
} }
@@ -113,7 +112,6 @@ abstract class CallGenerator {
abstract fun afterParameterPut( abstract fun afterParameterPut(
type: Type, type: Type,
stackValue: StackValue?, stackValue: StackValue?,
valueParameterDescriptor: ValueParameterDescriptor,
parameterIndex: Int) parameterIndex: Int)
abstract fun genValueAndPut( abstract fun genValueAndPut(
@@ -123,7 +121,6 @@ abstract class CallGenerator {
parameterIndex: Int) parameterIndex: Int)
abstract fun putValueIfNeeded( abstract fun putValueIfNeeded(
valueParameterDescriptor: ValueParameterDescriptor?,
parameterType: Type, parameterType: Type,
value: StackValue) value: StackValue)
@@ -53,7 +53,7 @@ class DefaultCallMask(val size: Int) {
fun generateOnStackIfNeeded(callGenerator: CallGenerator): Boolean { fun generateOnStackIfNeeded(callGenerator: CallGenerator): Boolean {
val toInts = toInts() val toInts = toInts()
for (mask in toInts) { for (mask in toInts) {
callGenerator.putValueIfNeeded(null, Type.INT_TYPE, StackValue.constant(mask, Type.INT_TYPE)) callGenerator.putValueIfNeeded(Type.INT_TYPE, StackValue.constant(mask, Type.INT_TYPE))
} }
return toInts.isNotEmpty(); return toInts.isNotEmpty();
} }
@@ -2404,7 +2404,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
List<JvmMethodParameterSignature> callableParameters = ((CallableMethod) callableMethod).getValueParameters(); List<JvmMethodParameterSignature> callableParameters = ((CallableMethod) callableMethod).getValueParameters();
for (JvmMethodParameterSignature parameter: callableParameters) { for (JvmMethodParameterSignature parameter: callableParameters) {
if (parameter.getKind() == JvmMethodParameterKind.CONSTRUCTOR_MARKER) { if (parameter.getKind() == JvmMethodParameterKind.CONSTRUCTOR_MARKER) {
callGenerator.putValueIfNeeded(null, parameter.getAsmType(), StackValue.constant(null, parameter.getAsmType())); callGenerator.putValueIfNeeded(parameter.getAsmType(), StackValue.constant(null, parameter.getAsmType()));
} }
} }
} }
@@ -732,7 +732,7 @@ public class FunctionCodegen {
iv.mark(loadArg); iv.mark(loadArg);
} }
generator.putValueIfNeeded(parameterDescriptor, type, StackValue.local(parameterIndex, type)); generator.putValueIfNeeded(type, StackValue.local(parameterIndex, type));
} }
CallableMethod method = state.getTypeMapper().mapToCallableMethod(functionDescriptor, false); CallableMethod method = state.getTypeMapper().mapToCallableMethod(functionDescriptor, false);
@@ -781,14 +781,14 @@ public class FunctionCodegen {
) { ) {
int var = 0; int var = 0;
if (!isStatic) { if (!isStatic) {
callGenerator.putValueIfNeeded(null, ownerType, StackValue.local(var, ownerType)); callGenerator.putValueIfNeeded(ownerType, StackValue.local(var, ownerType));
var += ownerType.getSize(); var += ownerType.getSize();
} }
for (JvmMethodParameterSignature parameterSignature : signature.getValueParameters()) { for (JvmMethodParameterSignature parameterSignature : signature.getValueParameters()) {
if (parameterSignature.getKind() != JvmMethodParameterKind.VALUE) { if (parameterSignature.getKind() != JvmMethodParameterKind.VALUE) {
Type type = parameterSignature.getAsmType(); Type type = parameterSignature.getAsmType();
callGenerator.putValueIfNeeded(null, type, StackValue.local(var, type)); callGenerator.putValueIfNeeded(type, StackValue.local(var, type));
var += type.getSize(); var += type.getSize();
} }
} }
@@ -437,7 +437,6 @@ public class InlineCodegen extends CallGenerator {
public void afterParameterPut( public void afterParameterPut(
@NotNull Type type, @NotNull Type type,
@Nullable StackValue stackValue, @Nullable StackValue stackValue,
@Nullable ValueParameterDescriptor valueParameterDescriptor,
int parameterIndex int parameterIndex
) { ) {
putArgumentOrCapturedToLocalVal(type, stackValue, -1, parameterIndex); putArgumentOrCapturedToLocalVal(type, stackValue, -1, parameterIndex);
@@ -664,21 +663,19 @@ public class InlineCodegen extends CallGenerator {
} }
else { else {
StackValue value = codegen.gen(argumentExpression); StackValue value = codegen.gen(argumentExpression);
putValueIfNeeded(valueParameterDescriptor, parameterType, value, valueParameterDescriptor.getIndex()); putValueIfNeeded(parameterType, value, valueParameterDescriptor.getIndex());
} }
} }
@Override @Override
public void putValueIfNeeded( public void putValueIfNeeded(
@Nullable ValueParameterDescriptor valueParameterDescriptor,
@NotNull Type parameterType, @NotNull Type parameterType,
@NotNull StackValue value @NotNull StackValue value
) { ) {
putValueIfNeeded(valueParameterDescriptor, parameterType, value, -1); putValueIfNeeded(parameterType, value, -1);
} }
private void putValueIfNeeded( private void putValueIfNeeded(
@Nullable ValueParameterDescriptor valueParameterDescriptor,
@NotNull Type parameterType, @NotNull Type parameterType,
@NotNull StackValue value, @NotNull StackValue value,
int index int index
@@ -686,7 +683,7 @@ public class InlineCodegen extends CallGenerator {
if (shouldPutValue(parameterType, value)) { if (shouldPutValue(parameterType, value)) {
value.put(parameterType, codegen.v); value.put(parameterType, codegen.v);
} }
afterParameterPut(parameterType, value, valueParameterDescriptor, index); afterParameterPut(parameterType, value, index);
} }
@Override @Override