void PatchFields() { FieldRVATable fieldRvaTable = (FieldRVATable)stripped_tables [FieldRVATable.RId]; if (fieldRvaTable == null) { return; } for (int i = 0; i < fieldRvaTable.Rows.Count; i++) { FieldRVARow fieldRvaRow = fieldRvaTable [i]; MetadataToken fieldToken = new MetadataToken(TokenType.Field, fieldRvaRow.Field); FieldDefinition field = (FieldDefinition)assembly.MainModule.LookupByToken(fieldToken); fieldRvaRow.RVA = metadata_writer.GetDataCursor(); metadata_writer.AddData(field.InitialValue.Length + 3 & (~3)); metadata_writer.AddFieldInitData(field.InitialValue); } }