private void EmitVarArgsMethodArguments()
{
int varArgCount = _argumentTypes.Length - MinimumArgumentCount();
Type varArgType = _found.VarArgsParameterType;
OpCode storeOpCode = GetStoreElementOpCode(varArgType);
_il.Emit(OpCodes.Ldc_I4, varArgCount);
_il.Emit(OpCodes.Newarr, varArgType);
for (int i = 0; i < varArgCount; ++i)
{
Dup();
_il.Emit(OpCodes.Ldc_I4, i);
if (IsStobj(storeOpCode))
{
_il.Emit(OpCodes.Ldelema, varArgType);
EmitMethodArgument(MinimumArgumentCount() + i, varArgType);
_il.Emit(storeOpCode, varArgType);
}
else
{
EmitMethodArgument(MinimumArgumentCount() + i, varArgType);
_il.Emit(storeOpCode);
}
}
}