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
protected void generateDefault(int i, @NotNull DefaultValueArgument argument) {
ValueParameterDescriptor parameter = valueParameters.get(i);
Type type = valueParameterTypes.get(i);
pushDefaultValueOnStack(type, codegen.v);
callGenerator.afterParameterPut(type, null, parameter, i);
callGenerator.afterParameterPut(type, null, i);
}
@Override
@@ -86,7 +85,7 @@ public class CallBasedArgumentGenerator extends ArgumentGenerator {
ValueParameterDescriptor parameter = valueParameters.get(i);
Type type = valueParameterTypes.get(i);
codegen.genVarargs(argument, parameter.getType());
callGenerator.afterParameterPut(type, null, parameter, i);
callGenerator.afterParameterPut(type, null, i);
}
@Override
@@ -46,7 +46,6 @@ abstract class CallGenerator {
override fun afterParameterPut(
type: Type,
stackValue: StackValue?,
valueParameterDescriptor: ValueParameterDescriptor,
parameterIndex: Int) {
}
@@ -70,7 +69,7 @@ abstract class CallGenerator {
}
override fun putValueIfNeeded(
valueParameterDescriptor: ValueParameterDescriptor?, parameterType: Type, value: StackValue) {
parameterType: Type, value: StackValue) {
value.put(value.type, codegen.v)
}
@@ -113,7 +112,6 @@ abstract class CallGenerator {
abstract fun afterParameterPut(
type: Type,
stackValue: StackValue?,
valueParameterDescriptor: ValueParameterDescriptor,
parameterIndex: Int)
abstract fun genValueAndPut(
@@ -123,7 +121,6 @@ abstract class CallGenerator {
parameterIndex: Int)
abstract fun putValueIfNeeded(
valueParameterDescriptor: ValueParameterDescriptor?,
parameterType: Type,
value: StackValue)
@@ -53,7 +53,7 @@ class DefaultCallMask(val size: Int) {
fun generateOnStackIfNeeded(callGenerator: CallGenerator): Boolean {
val toInts = 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();
}
@@ -2404,7 +2404,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
List<JvmMethodParameterSignature> callableParameters = ((CallableMethod) callableMethod).getValueParameters();
for (JvmMethodParameterSignature parameter: callableParameters) {
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);
}
generator.putValueIfNeeded(parameterDescriptor, type, StackValue.local(parameterIndex, type));
generator.putValueIfNeeded(type, StackValue.local(parameterIndex, type));
}
CallableMethod method = state.getTypeMapper().mapToCallableMethod(functionDescriptor, false);
@@ -781,14 +781,14 @@ public class FunctionCodegen {
) {
int var = 0;
if (!isStatic) {
callGenerator.putValueIfNeeded(null, ownerType, StackValue.local(var, ownerType));
callGenerator.putValueIfNeeded(ownerType, StackValue.local(var, ownerType));
var += ownerType.getSize();
}
for (JvmMethodParameterSignature parameterSignature : signature.getValueParameters()) {
if (parameterSignature.getKind() != JvmMethodParameterKind.VALUE) {
Type type = parameterSignature.getAsmType();
callGenerator.putValueIfNeeded(null, type, StackValue.local(var, type));
callGenerator.putValueIfNeeded(type, StackValue.local(var, type));
var += type.getSize();
}
}
@@ -437,7 +437,6 @@ public class InlineCodegen extends CallGenerator {
public void afterParameterPut(
@NotNull Type type,
@Nullable StackValue stackValue,
@Nullable ValueParameterDescriptor valueParameterDescriptor,
int parameterIndex
) {
putArgumentOrCapturedToLocalVal(type, stackValue, -1, parameterIndex);
@@ -664,21 +663,19 @@ public class InlineCodegen extends CallGenerator {
}
else {
StackValue value = codegen.gen(argumentExpression);
putValueIfNeeded(valueParameterDescriptor, parameterType, value, valueParameterDescriptor.getIndex());
putValueIfNeeded(parameterType, value, valueParameterDescriptor.getIndex());
}
}
@Override
public void putValueIfNeeded(
@Nullable ValueParameterDescriptor valueParameterDescriptor,
@NotNull Type parameterType,
@NotNull StackValue value
) {
putValueIfNeeded(valueParameterDescriptor, parameterType, value, -1);
putValueIfNeeded(parameterType, value, -1);
}
private void putValueIfNeeded(
@Nullable ValueParameterDescriptor valueParameterDescriptor,
@NotNull Type parameterType,
@NotNull StackValue value,
int index
@@ -686,7 +683,7 @@ public class InlineCodegen extends CallGenerator {
if (shouldPutValue(parameterType, value)) {
value.put(parameterType, codegen.v);
}
afterParameterPut(parameterType, value, valueParameterDescriptor, index);
afterParameterPut(parameterType, value, index);
}
@Override