private IClassRef parent;
private ArrayList impl_list;
private PEAPI.ClassDef classdef;
- private ArrayList field_list;
- private ArrayList method_list;
+ private Hashtable field_table;
+ private Hashtable method_table;
private ArrayList data_list;
private TypeDef outer;
this.name = name;
this.parent = parent;
this.impl_list = impl_list;
- field_list = new ArrayList ();
- method_list = new ArrayList ();
+ field_table = new Hashtable ();
+ method_table = new Hashtable ();
data_list = new ArrayList ();
is_defined = false;
public void AddFieldDef (FieldDef fielddef)
{
- field_list.Add (fielddef);
+ field_table.Add (fielddef.Name, fielddef);
}
public void AddDataDef (DataDef datadef)
public void AddMethodDef (MethodDef methoddef)
{
- method_list.Add (methoddef);
+ method_table.Add (methoddef.Signature, methoddef);
}
public void Define (CodeGen code_gen)
public void DefineContents (CodeGen code_gen)
{
- foreach (FieldDef fielddef in field_list) {
+ foreach (FieldDef fielddef in field_table.Values) {
fielddef.Define (code_gen, classdef);
}
- foreach (MethodDef methoddef in method_list) {
+ foreach (MethodDef methoddef in method_table.Values) {
methoddef.Define (code_gen, classdef);
}
}
+ public PEAPI.Method ResolveMethod (string signature, CodeGen code_gen)
+ {
+ MethodDef methoddef = (MethodDef) method_table[signature];
+
+ return methoddef.Resolve (code_gen, classdef);
+ }
+
private string MakeFullName ()
{
if (name_space == null || name_space == String.Empty)