in src/Refasmer/Importer/ImportLogic.cs [222:256]
private void ImportFieldDefinitionAccessories( FieldDefinitionHandle srcHandle, FieldDefinitionHandle dstHandle )
{
var src = _reader.GetFieldDefinition(srcHandle);
using var _ = WithLogPrefix($"[{_reader.ToString(src)}]");
if (!src.GetDefaultValue().IsNil)
{
var srcConst = _reader.GetConstant(src.GetDefaultValue());
var value = _reader.GetBlobReader(srcConst.Value).ReadConstant(srcConst.TypeCode);
var dstConst = _builder.AddConstant(dstHandle, value);
Trace?.Invoke($"Imported default value {_reader.ToString(srcConst)} -> {RowId(dstConst)} = {value}");
}
if (!src.GetMarshallingDescriptor().IsNil)
{
_builder.AddMarshallingDescriptor(dstHandle, ImportValue(src.GetMarshallingDescriptor()));
Trace?.Invoke($"Imported marshalling descriptor {_reader.ToString(src.GetMarshallingDescriptor())}");
}
if (src.GetOffset() != -1)
{
_builder.AddFieldLayout(dstHandle, src.GetOffset());
Trace?.Invoke($"Imported offset {src.GetOffset()}");
}
if (src.GetRelativeVirtualAddress() != 0)
{
_builder.AddFieldRelativeVirtualAddress(dstHandle, src.GetRelativeVirtualAddress());
Trace?.Invoke($"Imported relative virtual address {src.GetRelativeVirtualAddress()}");
}
}