Previous commit required some MethodBuilder changes too.

This commit is contained in:
jfrijters 2012-04-11 20:41:56 +00:00
Родитель e33f43598f
Коммит d7444307ea
1 изменённых файлов: 3 добавлений и 4 удалений

Просмотреть файл

@ -301,14 +301,12 @@ namespace IKVM.Reflection.Emit
public ParameterBuilder DefineParameter(int position, ParameterAttributes attributes, string strParamName)
{
// the parameter is named "position", but it is actually a sequence number (i.e. 0 = return parameter, 1 = first parameter)
int sequence = position--;
if (parameters == null)
{
parameters = new List<ParameterBuilder>();
}
this.ModuleBuilder.Param.AddVirtualRecord();
ParameterBuilder pb = new ParameterBuilder(this.ModuleBuilder, sequence, attributes, strParamName);
ParameterBuilder pb = new ParameterBuilder(this.ModuleBuilder, position, attributes, strParamName);
if (parameters.Count == 0 || position > parameters[parameters.Count - 1].Position)
{
parameters.Add(pb);
@ -443,7 +441,8 @@ namespace IKVM.Reflection.Emit
{
foreach (ParameterBuilder pb in method.parameters)
{
if (pb.Position == parameter)
// ParameterBuilder.Position is 1-based
if (pb.Position - 1 == parameter)
{
return pb;
}