Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SerializeTextSection()

BlobBuilder System.Reflection.PortableExecutable.ManagedPEBuilder.SerializeTextSection ( SectionLocation location)
inlineprivate

Definition at line 106 of file ManagedPEBuilder.cs.

107 {
111 ManagedTextSection managedTextSection = new ManagedTextSection(base.Header.ImageCharacteristics, base.Header.Machine, _ilStream.Count, sizes.MetadataSize, _managedResourcesOpt?.Count ?? 0, _strongNameSignatureSize, _debugDirectoryBuilderOpt?.Size ?? 0, _mappedFieldDataOpt?.Count ?? 0);
112 int methodBodyStreamRva = location.RelativeVirtualAddress + managedTextSection.OffsetToILStream;
113 int mappedFieldDataStreamRva = location.RelativeVirtualAddress + managedTextSection.CalculateOffsetToMappedFieldDataStream();
116 DirectoryEntry debugTable;
117 if (_debugDirectoryBuilderOpt != null)
118 {
119 int num = managedTextSection.ComputeOffsetToDebugDirectory();
122 debugTable = new DirectoryEntry(location.RelativeVirtualAddress + num, _debugDirectoryBuilderOpt.TableSize);
123 }
124 else
125 {
126 blobBuilder3 = null;
127 debugTable = default(DirectoryEntry);
128 }
129 _lazyEntryPointAddress = managedTextSection.GetEntryPointAddress(location.RelativeVirtualAddress);
131 _peDirectoriesBuilder.AddressOfEntryPoint = _lazyEntryPointAddress;
132 _peDirectoriesBuilder.DebugTable = debugTable;
133 _peDirectoriesBuilder.ImportAddressTable = managedTextSection.GetImportAddressTableDirectoryEntry(location.RelativeVirtualAddress);
134 _peDirectoriesBuilder.ImportTable = managedTextSection.GetImportTableDirectoryEntry(location.RelativeVirtualAddress);
135 _peDirectoriesBuilder.CorHeaderTable = managedTextSection.GetCorHeaderDirectoryEntry(location.RelativeVirtualAddress);
136 return blobBuilder;
137 }
void Serialize(BlobBuilder builder, int methodBodyStreamRva, int mappedFieldDataStreamRva)
static int GetToken(this MetadataReader reader, EntityHandle handle)
void Serialize(BlobBuilder builder, SectionLocation sectionLocation, int sectionOffset)

References System.Reflection.PortableExecutable.ManagedPEBuilder._corFlags, System.Reflection.PortableExecutable.ManagedPEBuilder._debugDirectoryBuilderOpt, System.Reflection.PortableExecutable.ManagedPEBuilder._entryPointOpt, System.Reflection.PortableExecutable.ManagedPEBuilder._ilStream, System.Reflection.PortableExecutable.ManagedPEBuilder._lazyEntryPointAddress, System.Reflection.PortableExecutable.ManagedPEBuilder._lazyStrongNameSignature, System.Reflection.PortableExecutable.ManagedPEBuilder._managedResourcesOpt, System.Reflection.PortableExecutable.ManagedPEBuilder._mappedFieldDataOpt, System.Reflection.PortableExecutable.ManagedPEBuilder._metadataRootBuilder, System.Reflection.PortableExecutable.ManagedPEBuilder._strongNameSignatureSize, System.Reflection.Metadata.BlobBuilder.Count, System.Reflection.Metadata.Ecma335.MetadataTokens.GetToken(), System.Reflection.Metadata.MethodDefinitionHandle.IsNil, System.Reflection.Metadata.Ecma335.MetadataRootBuilder.Serialize(), System.Reflection.PortableExecutable.DebugDirectoryBuilder.Serialize(), System.Reflection.PortableExecutable.DebugDirectoryBuilder.Size, System.Reflection.Metadata.Ecma335.MetadataRootBuilder.Sizes, and System.Reflection.PortableExecutable.DebugDirectoryBuilder.TableSize.

Referenced by System.Reflection.PortableExecutable.ManagedPEBuilder.SerializeSection().