Browse Source

Merge pull request #2126 from cshung/public/dev/andrewau/update

Adapting to the changes proposed by Tomas
pull/2134/head
Christoph Wille 5 years ago committed by GitHub
parent
commit
215340bc83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj
  2. 11
      ILSpy.ReadyToRun/ReadyToRunLanguage.cs

2
ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj

@ -75,7 +75,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Iced" Version="1.8.0" /> <PackageReference Include="Iced" Version="1.8.0" />
<PackageReference Include="ILCompiler.Reflection.ReadyToRun" Version="1.0.9-alpha" /> <PackageReference Include="ILCompiler.Reflection.ReadyToRun" Version="1.0.10-alpha" />
</ItemGroup> </ItemGroup>
<Target Name="RemoveTransitiveProjectReferences" AfterTargets="IncludeTransitiveProjectReferences"> <Target Name="RemoveTransitiveProjectReferences" AfterTargets="IncludeTransitiveProjectReferences">

11
ILSpy.ReadyToRun/ReadyToRunLanguage.cs

@ -203,7 +203,7 @@ namespace ICSharpCode.ILSpy.ReadyToRun
WriteCommentLine(output, $"Flags: 0x{amd64UnwindInfo.Flags:X2}{parsedFlags}"); WriteCommentLine(output, $"Flags: 0x{amd64UnwindInfo.Flags:X2}{parsedFlags}");
WriteCommentLine(output, $"FrameRegister: {((amd64UnwindInfo.FrameRegister == 0) ? "none" : amd64UnwindInfo.FrameRegister.ToString().ToLower())}"); WriteCommentLine(output, $"FrameRegister: {((amd64UnwindInfo.FrameRegister == 0) ? "none" : amd64UnwindInfo.FrameRegister.ToString().ToLower())}");
for (int unwindCodeIndex = 0; unwindCodeIndex < amd64UnwindInfo.CountOfUnwindCodes; unwindCodeIndex++) { for (int unwindCodeIndex = 0; unwindCodeIndex < amd64UnwindInfo.CountOfUnwindCodes; unwindCodeIndex++) {
unwindCodes.Add((ulong)(amd64UnwindInfo.UnwindCodeArray[unwindCodeIndex].CodeOffset), amd64UnwindInfo.UnwindCodeArray[unwindCodeIndex]); unwindCodes.Add((ulong)(amd64UnwindInfo.UnwindCodes[unwindCodeIndex].CodeOffset), amd64UnwindInfo.UnwindCodes[unwindCodeIndex]);
} }
} }
return unwindCodes; return unwindCodes;
@ -408,7 +408,7 @@ namespace ICSharpCode.ILSpy.ReadyToRun
if (!readyToRunReaders.TryGetValue(module, out result)) { if (!readyToRunReaders.TryGetValue(module, out result)) {
result = new ReadyToRunReaderCacheEntry(); result = new ReadyToRunReaderCacheEntry();
try { try {
result.readyToRunReader = new ReadyToRunReader(new ReadyToRunAssemblyResolver(assembly), module.Metadata, module.Reader, module.FileName); result.readyToRunReader = new ReadyToRunReader(new ReadyToRunAssemblyResolver(assembly), new StandaloneAssemblyMetadata(module.Reader), module.Reader, module.FileName);
if (result.readyToRunReader.Machine != Machine.Amd64 && result.readyToRunReader.Machine != Machine.I386) { if (result.readyToRunReader.Machine != Machine.Amd64 && result.readyToRunReader.Machine != Machine.I386) {
result.failureReason = $"Architecture {result.readyToRunReader.Machine} is not currently supported."; result.failureReason = $"Architecture {result.readyToRunReader.Machine} is not currently supported.";
result.readyToRunReader = null; result.readyToRunReader = null;
@ -435,13 +435,14 @@ namespace ICSharpCode.ILSpy.ReadyToRun
public bool InlineSignatureBinary => false; public bool InlineSignatureBinary => false;
public MetadataReader FindAssembly(MetadataReader metadataReader, AssemblyReferenceHandle assemblyReferenceHandle, string parentFile) public IAssemblyMetadata FindAssembly(MetadataReader metadataReader, AssemblyReferenceHandle assemblyReferenceHandle, string parentFile)
{ {
LoadedAssembly loadedAssembly = this.loadedAssembly.LookupReferencedAssembly(new Decompiler.Metadata.AssemblyReference(metadataReader, assemblyReferenceHandle)); LoadedAssembly loadedAssembly = this.loadedAssembly.LookupReferencedAssembly(new Decompiler.Metadata.AssemblyReference(metadataReader, assemblyReferenceHandle));
return loadedAssembly?.GetPEFileOrNull()?.Metadata; PEReader reader = loadedAssembly?.GetPEFileOrNull()?.Reader;
return reader == null ? null : new StandaloneAssemblyMetadata(reader);
} }
public MetadataReader FindAssembly(string simpleName, string parentFile) public IAssemblyMetadata FindAssembly(string simpleName, string parentFile)
{ {
// This is called only for the composite R2R scenario, // This is called only for the composite R2R scenario,
// So it will never be called before the feature is released. // So it will never be called before the feature is released.

Loading…
Cancel
Save