protected override void PopulateType()
{
if (!abbrev.HasChildren)
return;
ArrayList list = new ArrayList ();
foreach (Die child in Children) {
DieMember member = child as DieMember;
if ((member == null) || !member.Resolve (this))
continue;
TargetType mtype = member.Type;
if (mtype == null)
mtype = (TargetType) language.VoidType;
NativeFieldInfo field;
if (member.IsBitfield)
field = new NativeFieldInfo (
mtype, member.Name, list.Count,
member.DataOffset, member.BitOffset,
member.BitSize);
else
field = new NativeFieldInfo (
mtype, member.Name, list.Count,
member.DataOffset);
list.Add (field);
}
fields = new NativeFieldInfo [list.Count];
list.CopyTo (fields);
type.SetFields (fields);
}