Example #1
0
            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;
            }
Example #2
0
            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);
            }