3 types derived from BlobBuilder
Microsoft.CodeAnalysis (1)
System.Reflection.Metadata (2)
162 instantiations of BlobBuilder
ilasm (1)
ILAssembler (85)
ILCompiler.Compiler (16)
ILCompiler.ReadyToRun (12)
Microsoft.CodeAnalysis (20)
Microsoft.CodeAnalysis.CSharp (2)
Microsoft.Diagnostics.DataContractReader.Contracts (1)
Microsoft.DotNet.StrongName (1)
System.Reflection.Emit (16)
System.Reflection.Metadata (8)
586 references to BlobBuilder
ilasm (1)
ILAssembler (171)
EntityRegistry.cs (72)
21private readonly Dictionary<BlobBuilder, TypeSpecificationEntity> _seenTypeSpecs = new(new BlobBuilderContentEqualityComparer());
22private readonly Dictionary<BlobBuilder, StandaloneSignatureEntity> _seenStandaloneSignatures = new(new BlobBuilderContentEqualityComparer());
28private readonly Dictionary<(EntityBase, BlobBuilder), MethodSpecificationEntity> _seenMethodSpecs = new(new MethodSpecEqualityComparer());
30private sealed class BlobBuilderContentEqualityComparer : IEqualityComparer<BlobBuilder>
32public bool Equals(BlobBuilder? x, BlobBuilder? y)
47public int GetHashCode(BlobBuilder obj)
58private sealed class MethodSpecEqualityComparer : IEqualityComparer<(EntityBase, BlobBuilder)>
60public bool Equals((EntityBase, BlobBuilder) x, (EntityBase, BlobBuilder) y)
65public int GetHashCode((EntityBase, BlobBuilder) obj)
95public Blob WriteContentTo(MetadataBuilder builder, BlobBuilder ilStream, IReadOnlyDictionary<string, int> mappedFieldDataNames, bool deterministic)
866public TypeSpecificationEntity GetOrCreateTypeSpec(BlobBuilder signature)
972public static FieldDefinitionEntity? CreateUnrecordedFieldDefinition(FieldAttributes attributes, TypeDefinitionEntity containingType, string name, BlobBuilder signature)
997public static ParameterEntity CreateParameter(ParameterAttributes attributes, string? name, BlobBuilder marshallingDescriptor, int sequence)
1002public MemberReferenceEntity CreateLazilyRecordedMemberReference(TypeEntity containingType, string name, BlobBuilder signature)
1021public BlobOrHandle(BlobBuilder? blob)
1035private BlobBuilder? Blob { get; }
1039public static implicit operator BlobOrHandle(BlobBuilder blob) => new(blob);
1040public static implicit operator BlobBuilder(BlobOrHandle blobOrHandle)
1051public void WriteBlobTo(BlobBuilder builder)
1053((BlobBuilder)this).WriteContentTo(builder);
1059var builder = new BlobBuilder();
1087BlobBuilder paramType = signature.ParameterTypes[i];
1118var builder = new BlobBuilder();
1134var builder = new BlobBuilder();
1266private static BlobBuilder RewriteSignatureBlob(BlobBuilder original, SignatureRewriter rewriter)
1295private BlobBuilder RewriteTypeSpecBlob(BlobBuilder original, SignatureRewriter rewriter)
1312BlobBuilder result = decoded;
1326private BlobBuilder RewriteMethodSpecBlob(BlobBuilder original, SignatureRewriter rewriter)
1343var newBlob = new BlobBuilder();
1361private static BlobBuilder RewriteMethodSignatureBlob(byte[] bytes, SignatureRewriter rewriter)
1371var newBlob = new BlobBuilder();
1389private static BlobBuilder RewriteFieldSignatureBlob(byte[] bytes, SignatureRewriter rewriter)
1399var newBlob = new BlobBuilder();
1407private static BlobBuilder RewriteLocalSignatureBlob(byte[] bytes, SignatureRewriter rewriter)
1417var newBlob = new BlobBuilder();
1429private static BlobBuilder RewritePropertySignatureBlob(byte[] bytes, SignatureRewriter rewriter)
1439var newBlob = new BlobBuilder();
1586public MethodSpecificationEntity GetOrCreateMethodSpecification(EntityBase method, BlobBuilder signature)
1592((EntityBase method, BlobBuilder signature) value) => new(method, signature),
1596public StandaloneSignatureEntity GetOrCreateStandaloneSignature(BlobBuilder signature)
1601public DeclarativeSecurityAttributeEntity CreateDeclarativeSecurityAttribute(DeclarativeSecurityAction action, BlobBuilder permissionSet)
1608public CustomAttributeEntity CreateCustomAttribute(EntityBase constructor, BlobBuilder value)
1620public FileEntity GetOrCreateFile(string name, bool hasMetadata, BlobBuilder? hash)
1647public AssemblyReferenceEntity GetOrCreateAssemblyReference(string name, Version version, string? culture, BlobBuilder? publicKeyOrToken, AssemblyFlags flags, ProcessorArchitecture architecture)
1856public sealed class TypeSpecificationEntity(BlobBuilder signature) : TypeEntity
1858public BlobBuilder Signature { get; } = signature;
1902public BlobBuilder? MethodSignature { get; set; }
1953public sealed class ParameterEntity(ParameterAttributes attributes, string? name, BlobBuilder marshallingDescriptor, int sequence) : EntityBase
1957public BlobBuilder MarshallingDescriptor { get; set; } = marshallingDescriptor;
1964public sealed class MemberReferenceEntity(EntityBase parent, string name, BlobBuilder signature) : EntityBase
1969public BlobBuilder Signature { get; } = signature;
1997public sealed class MethodSpecificationEntity(EntityBase parent, BlobBuilder signature) : EntityBase
2000public BlobBuilder Signature { get; } = signature;
2003public sealed class StandaloneSignatureEntity(BlobBuilder signature) : EntityBase
2005public BlobBuilder Signature { get; } = signature;
2008public sealed class DeclarativeSecurityAttributeEntity(DeclarativeSecurityAction action, BlobBuilder permissionSet) : EntityBase
2012public BlobBuilder PermissionSet { get; } = permissionSet;
2015public sealed class CustomAttributeEntity(EntityBase constructor, BlobBuilder value) : EntityBase
2019public BlobBuilder Value { get; } = value;
2028public sealed class FieldDefinitionEntity(FieldAttributes attributes, TypeDefinitionEntity type, string name, BlobBuilder signature) : EntityBase
2033public BlobBuilder Signature { get; } = signature;
2035public BlobBuilder? MarshallingDescriptor { get; set; }
2061public sealed class PropertyEntity(PropertyAttributes attributes, BlobBuilder type, string name) : EntityBase
2064public BlobBuilder Type { get; } = type;
2076public BlobBuilder? Hash { get; set; }
2089public BlobBuilder? PublicKeyOrToken { get; set; }
2101public BlobBuilder? Hash { get; set; }
ILCompiler.Compiler (20)
ILCompiler.ReadyToRun (18)
ILCompiler.TypeSystem (3)
Microsoft.CodeAnalysis (79)
PEWriter\MetadataWriter.cs (16)
1701var ilBuilder = new BlobBuilder(1024);
1702var metadataBuilder = new BlobBuilder(4 * 1024);
1773var portablePdbBlob = new BlobBuilder();
1789BlobBuilder ilBuilder,
1927private void PopulateTypeSystemTables(int[] methodBodyOffsets, int mappedFieldDataStartOffset, out PooledBlobBuilder? mappedFieldDataWriter, out PooledBlobBuilder? resourceWriter, BlobBuilder? dynamicAnalysisData, out Blob mvidFixup)
2527private void PopulateManifestResourceTableRows(out PooledBlobBuilder? resourceDataWriter, BlobBuilder? dynamicAnalysisData)
2590static uint writeBuilderResourceAndGetOffset(BlobBuilder resource, BlobBuilder resourceWriter)
2956private int[] SerializeThrowNullMethodBodies(BlobBuilder ilBuilder)
2985private int[] SerializeMethodBodies(BlobBuilder ilBuilder, PdbWriter nativePdbWriterOpt, out Blob mvidStringFixup)
3475private void SerializeFieldSignature(IFieldReference fieldReference, BlobBuilder builder)
3485private void SerializeMethodSpecificationSignature(BlobBuilder builder, IGenericMethodInstanceReference genericMethodInstanceReference)
3510private void SerializeCustomAttributeSignature(ICustomAttribute customAttribute, BlobBuilder builder)
3640private void SerializeMarshallingDescriptor(IMarshallingInformation marshallingInformation, BlobBuilder writer)
3734private void SerializeTypeName(ITypeReference typeReference, BlobBuilder writer)
3789private void SerializePermissionSet(ImmutableArray<ICustomAttribute> permissionSet, BlobBuilder writer)
PEWriter\NativeResourceWriter.cs (5)
172public static void SerializeWin32Resources(BlobBuilder builder, IEnumerable<IWin32Resource> theResources, int resourcesRva)
231var dataWriter = new BlobBuilder();
240private static void WriteDirectory(Directory directory, BlobBuilder writer, uint offset, uint level, uint sizeOfDirectoryTree, int virtualAddressBase, BlobBuilder dataWriter)
354public static void SerializeWin32Resources(BlobBuilder builder, ResourceSection resourceSections, int resourcesRva)
Microsoft.CodeAnalysis.CSharp (4)
Microsoft.CodeAnalysis.Features (3)
Microsoft.CodeAnalysis.VisualBasic (3)
Microsoft.Diagnostics.DataContractReader.Contracts (4)
Microsoft.DotNet.StrongName (1)
System.Reflection.Emit (50)
System\Reflection\Emit\ModuleBuilderImpl.cs (17)
117internal void AppendMetadata(MethodBodyStreamEncoder methodBodyEncoder, BlobBuilder fieldDataBuilder, out MetadataBuilder pdbBuilder)
434BlobBuilder spBlobBuilder = new BlobBuilder();
449BlobBuilder spBlobBuilder = new BlobBuilder();
473private static void PopulateSequencePointsBlob(BlobBuilder spBlobBuilder, List<SequencePoint> sequencePoints, ref int previousNonHiddenStartLine, ref int previousNonHiddenStartColumn)
560BlobBuilder importBlob = new BlobBuilder();
571private static void SerializeDeltaLinesAndColumns(BlobBuilder spBuilder, SequencePoint sequencePoint)
634private void WriteFields(TypeBuilderImpl typeBuilder, BlobBuilder fieldDataBuilder)
785BlobBuilder signature = GetMethodSignature(method, optionalParameterTypes);
786KeyValuePair<MethodInfo, BlobBuilder> pair = new(method, signature);
797private BlobBuilder GetMethodSignature(MethodInfo method, Type[]? optionalParameterTypes) =>
801private BlobBuilder GetMethodArrayMethodSignature(ArrayMethod method) => MetadataSignatureHelper.GetMethodSignature(
896private PropertyDefinitionHandle AddPropertyDefinition(PropertyBuilderImpl property, BlobBuilder signature) =>
918private FieldDefinitionHandle AddFieldDefinition(FieldBuilderImpl field, BlobBuilder fieldSignature) =>
933private MethodDefinitionHandle AddMethodDefinition(MethodBuilderImpl method, BlobBuilder methodSignature, int offset, int parameterToken) =>
948private MemberReferenceHandle AddMemberReference(string memberName, EntityHandle parent, BlobBuilder signature) =>
968private void AddMarshalling(EntityHandle parent, BlobBuilder builder) =>
1378BlobBuilder blobBuilder = new();
System\Reflection\Emit\SignatureHelper.cs (14)
13internal static BlobBuilder GetLocalSignature(List<LocalBuilder> locals, ModuleBuilderImpl module)
17BlobBuilder localSignature = new();
29internal static BlobBuilder GetFieldSignature(Type fieldType, Type[] requiredCustomModifiers, Type[] optionalCustomModifiers, ModuleBuilderImpl module)
31BlobBuilder fieldSignature = new();
38internal static BlobBuilder GetConstructorSignature(ParameterInfo[]? parameters, ModuleBuilderImpl module)
40BlobBuilder constructorSignature = new();
55internal static BlobBuilder GetTypeSpecificationSignature(Type type, ModuleBuilderImpl module)
57BlobBuilder typeSpecSignature = new();
63internal static BlobBuilder GetMethodSpecificationSignature(Type[] genericArguments, ModuleBuilderImpl module)
65BlobBuilder methodSpecSignature = new();
76internal static BlobBuilder GetMethodSignature(ModuleBuilderImpl module, Type[]? parameters, Type? returnType, SignatureCallingConvention convention,
80BlobBuilder methodSignature = new();
144internal static BlobBuilder GetPropertySignature(PropertyBuilderImpl property, ModuleBuilderImpl module)
146BlobBuilder propertySignature = new();
System.Reflection.Metadata (229)