Imported Upstream version 5.20.0.208

Former-commit-id: 8fbf7dae6cd486bffb1fa6a52020e8eb23c570b1
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-02-13 08:25:33 +00:00
parent 5d930a31c6
commit 219eec173f
74 changed files with 391 additions and 163 deletions

View File

@@ -29,6 +29,8 @@ namespace Mono.Cecil.PE {
public TargetArchitecture Architecture;
public ModuleCharacteristics Characteristics;
public ushort LinkerVersion;
public ushort SubSystemMajor;
public ushort SubSystemMinor;
public ImageDebugHeader DebugHeader;

View File

@@ -81,8 +81,8 @@ namespace Mono.Cecil.PE {
// Characteristics 2
ushort characteristics = ReadUInt16 ();
ushort subsystem, dll_characteristics, linker_version;
ReadOptionalHeaders (out subsystem, out dll_characteristics, out linker_version);
ushort subsystem, dll_characteristics;
ReadOptionalHeaders (out subsystem, out dll_characteristics);
ReadSections (sections);
ReadCLIHeader ();
ReadMetadata ();
@@ -90,7 +90,6 @@ namespace Mono.Cecil.PE {
image.Kind = GetModuleKind (characteristics, subsystem);
image.Characteristics = (ModuleCharacteristics) dll_characteristics;
image.LinkerVersion = linker_version;
}
TargetArchitecture ReadArchitecture ()
@@ -109,7 +108,7 @@ namespace Mono.Cecil.PE {
return ModuleKind.Console;
}
void ReadOptionalHeaders (out ushort subsystem, out ushort dll_characteristics, out ushort linker)
void ReadOptionalHeaders (out ushort subsystem, out ushort dll_characteristics)
{
// - PEOptionalHeader
// - StandardFieldsHeader
@@ -119,7 +118,7 @@ namespace Mono.Cecil.PE {
// pe32 || pe64
linker = ReadUInt16 ();
image.LinkerVersion = ReadUInt16 ();
// CodeSize 4
// InitializedDataSize 4
// UninitializedDataSize4
@@ -138,11 +137,16 @@ namespace Mono.Cecil.PE {
// UserMinor 2
// SubSysMajor 2
// SubSysMinor 2
Advance(44);
image.SubSystemMajor = ReadUInt16 ();
image.SubSystemMinor = ReadUInt16 ();
// Reserved 4
// ImageSize 4
// HeaderSize 4
// FileChecksum 4
Advance (64);
Advance (16);
// SubSystem 2
subsystem = ReadUInt16 ();

View File

@@ -243,8 +243,8 @@ namespace Mono.Cecil.PE {
WriteUInt16 (0); // OSMinor
WriteUInt16 (0); // UserMajor
WriteUInt16 (0); // UserMinor
WriteUInt16 (4); // SubSysMajor
WriteUInt16 (0); // SubSysMinor
WriteUInt16 (module.subsystem_major); // SubSysMajor
WriteUInt16 (module.subsystem_minor); // SubSysMinor
WriteUInt32 (0); // Reserved
var last_section = LastSection();
@@ -255,17 +255,22 @@ namespace Mono.Cecil.PE {
WriteUInt16 (GetSubSystem ()); // SubSystem
WriteUInt16 ((ushort) module.Characteristics); // DLLFlags
const ulong stack_reserve = 0x100000;
const ulong stack_commit = 0x1000;
const ulong heap_reserve = 0x100000;
const ulong heap_commit = 0x1000;
if (!pe64) {
WriteUInt32 ((uint) stack_reserve);
WriteUInt32 ((uint) stack_commit);
WriteUInt32 ((uint) heap_reserve);
WriteUInt32 ((uint) heap_commit);
const uint stack_reserve = 0x100000;
const uint stack_commit = 0x1000;
const uint heap_reserve = 0x100000;
const uint heap_commit = 0x1000;
WriteUInt32 (stack_reserve);
WriteUInt32 (stack_commit);
WriteUInt32 (heap_reserve);
WriteUInt32 (heap_commit);
} else {
const ulong stack_reserve = 0x400000;
const ulong stack_commit = 0x4000;
const ulong heap_reserve = 0x100000;
const ulong heap_commit = 0x2000;
WriteUInt64 (stack_reserve);
WriteUInt64 (stack_commit);
WriteUInt64 (heap_reserve);