protected override TargetType CreateType() { if (!abbrev.HasChildren) return new NativeTypeAlias (language, Name, Name); foreach (Die child in Children) { DieInheritance inheritance = child as DieInheritance; if ((inheritance == null) || !inheritance.HasDataMember) continue; if (!inheritance.Resolve ()) continue; debug ("INHERITANCE: {0} {1}", inheritance, inheritance.BaseInfo); base_info = inheritance.BaseInfo; break; } type = new NativeStructType (language, Name, byte_size, base_info); return type; }
void DoResolve() { DieType type = comp_unit.GetType (type_offset); if (type == null) return; base_type = type.ResolveType () as NativeStructType; if (base_type == null) return; base_info = new DwarfBaseInfo (this, base_type); }