Inheritance: TargetFieldInfo
Example #1
0
        internal MonoFieldInfo[] GetFields(TargetMemoryAccess target)
        {
            if (fields != null)
            {
                return(fields);
            }

            int field_count = MetadataHelper.MonoClassGetFieldCount(target, KlassAddress);

            if ((field_count != 0) && !MetadataHelper.MonoClassHasFields(target, KlassAddress))
            {
                throw new TargetException(TargetError.ClassNotInitialized);
            }

            fields        = new MonoFieldInfo [field_count];
            field_offsets = new int [field_count];
            field_types   = new TargetType [field_count];

            for (int i = 0; i < field_count; i++)
            {
                Cecil.FieldDefinition field = CecilType.Fields [i];

                TargetAddress type_addr = MetadataHelper.MonoClassGetFieldType(
                    target, KlassAddress, i);

                field_types [i]   = SymbolFile.MonoLanguage.ReadType(target, type_addr);
                field_offsets [i] = MetadataHelper.MonoClassGetFieldOffset(
                    target, KlassAddress, i);

                fields [i] = new MonoFieldInfo(struct_type, field_types [i], i, field);
            }

            return(fields);
        }
Example #2
0
 public MonoEnumInfo(MonoEnumType type, TargetType field_type, int index, int pos,
                     Cecil.FieldDefinition finfo)
     : base(field_type, finfo.Name, index, finfo.IsStatic,
            MonoFieldInfo.GetAccessibility(finfo),
            pos, 0, finfo.HasConstant)
 {
     FieldInfo = finfo;
 }
Example #3
0
        void get_fields()
        {
            lock (this) {
                if (fields != null)
                {
                    return;
                }

                fields = new MonoFieldInfo [TypeDef.Fields.Count];

                for (int i = 0; i < fields.Length; i++)
                {
                    Cecil.FieldDefinition field = TypeDef.Fields [i];
                    TargetType            ftype = File.MonoLanguage.LookupMonoType(field.FieldType);
                    fields [i] = new MonoFieldInfo(this, ftype, i, field);
                }
            }
        }
Example #4
0
        void get_fields()
        {
            lock (this) {
                if (fields != null)
                    return;

                fields = new MonoFieldInfo [TypeDef.Fields.Count];

                for (int i = 0; i < fields.Length; i++) {
                    Cecil.FieldDefinition field = TypeDef.Fields [i];
                    TargetType ftype = File.MonoLanguage.LookupMonoType (field.FieldType);
                    fields [i] = new MonoFieldInfo (this, ftype, i, field);
                }
            }
        }
Example #5
0
        internal MonoFieldInfo[] GetFields(TargetMemoryAccess target)
        {
            if (fields != null)
                return fields;

            int field_count = MetadataHelper.MonoClassGetFieldCount (target, KlassAddress);
            if ((field_count != 0) && !MetadataHelper.MonoClassHasFields (target, KlassAddress))
                throw new TargetException (TargetError.ClassNotInitialized);

            fields = new MonoFieldInfo [field_count];
            field_offsets = new int [field_count];
            field_types = new TargetType [field_count];

            for (int i = 0; i < field_count; i++) {
                Cecil.FieldDefinition field = CecilType.Fields [i];

                TargetAddress type_addr = MetadataHelper.MonoClassGetFieldType (
                    target, KlassAddress, i);

                field_types [i] = SymbolFile.MonoLanguage.ReadType (target, type_addr);
                field_offsets [i] = MetadataHelper.MonoClassGetFieldOffset (
                    target, KlassAddress, i);

                fields [i] = new MonoFieldInfo (struct_type, field_types [i], i, field);
            }

            return fields;
        }