Get rid of ValueParameterDescriptor in 'afterParameterPut' fun
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user