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); if (parameters.Count == 0 || position > parameters[parameters.Count - 1].Position) { parameters.Add(pb); } else { for (int i = 0; i < parameters.Count; i++) { if (parameters[i].Position > position) { parameters.Insert(i, pb); break; } } } return pb; }
public ParameterBuilder DefineParameter(int position, ParameterAttributes attributes, string strParamName) { if (parameters == null) { parameters = new List<ParameterBuilder>(); } this.ModuleBuilder.Param.AddVirtualRecord(); ParameterBuilder pb = new ParameterBuilder(this.ModuleBuilder, position, attributes, strParamName); if (parameters.Count == 0 || position > parameters[parameters.Count - 1].Position) { parameters.Add(pb); } else { for (int i = 0; i < parameters.Count; i++) { if (parameters[i].Position > position) { parameters.Insert(i, pb); break; } } } return pb; }
internal void AddXmlMapParameterAttributes(MethodBuilder method, string className, string methodName, string methodSig, ref ParameterBuilder[] pbs) { IKVM.Internal.MapXml.Param[] parameters = classLoader.GetXmlMapParameters(className, methodName, methodSig); if(parameters != null) { if(pbs == null) { // let's hope that the parameters array is the right length pbs = GetParameterBuilders(method, parameters.Length, null); } for(int i = 0; i < pbs.Length; i++) { if(parameters[i].Attributes != null) { foreach(IKVM.Internal.MapXml.Attribute attr in parameters[i].Attributes) { AttributeHelper.SetCustomAttribute(classLoader, pbs[i], attr); } } } } }
public ParameterBuilder DefineParameter(int position, ParameterAttributes attributes, string strParamName) { if (parameters == null) { parameters = new List<ParameterBuilder>(); } this.ModuleBuilder.Param.AddVirtualRecord(); ParameterBuilder pb = new ParameterBuilder(this.ModuleBuilder, position, attributes, strParamName); parameters.Add(pb); return pb; }