AsmResolver.Net.Builder.NetAssemblyBuilder.UpdateOptionalHeader C# (CSharp) Method

UpdateOptionalHeader() private method

private UpdateOptionalHeader ( ) : void
return void
        private void UpdateOptionalHeader()
        {
            var header = Assembly.NtHeaders.OptionalHeader;
            header.SizeOfCode = _textSectionBuilder.GetPhysicalLength();
            header.SizeOfInitializedData = (_relocSectionBuilder != null ? _relocSectionBuilder.GetPhysicalLength() : 0) +
                                           (_rsrcSectionBuilder != null ? _rsrcSectionBuilder.GetPhysicalLength() : 0);
            header.BaseOfCode = _textSectionBuilder.Header.VirtualAddress;
            if (_relocSectionBuilder != null)
                header.BaseOfData = _relocSectionBuilder.Header.VirtualAddress;

            var lastSection = Assembly.SectionHeaders[Assembly.SectionHeaders.Count - 1];
            header.SizeOfImage = lastSection.VirtualAddress +
                                 Align(lastSection.VirtualSize, Assembly.NtHeaders.OptionalHeader.SectionAlignment);
            header.SizeOfHeaders = 0x200;
            UpdateDataDirectories();
        }