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); }
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; }
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); } } }
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); } } }
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; }