Update to AsmResolver 6 beta 4

This commit is contained in:
ds5678 2025-09-13 15:26:51 -07:00
parent 85172b7393
commit 0d60120c08
10 changed files with 14 additions and 23 deletions

View File

@ -8,12 +8,12 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.3" />
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.4" />
<PackageReference Include="AssetRipper.Gee.External.Capstone" Version="2.3.2" />
<PackageReference Include="AssetRipper.Mining.PredefinedAssets" Version="1.5.0" />
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
<PackageReference Include="AssetRipper.Tpk" Version="1.1.0" />
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-development.1374" />
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-development.1390" />
</ItemGroup>
<ItemGroup>

View File

@ -43,10 +43,7 @@ public partial class BaseManager : IAssemblyManager
AssemblyDefinition assembly;
try
{
MemoryStream memoryStream = new();
stream.CopyTo(memoryStream);
assembly = AssemblyDefinition.FromBytes(memoryStream.ToArray());
//assembly = AssemblyDefinition.FromStream(stream);
assembly = AssemblyDefinition.FromStream(stream);
}
catch (BadImageFormatException badImageFormatException)
{
@ -95,16 +92,13 @@ public partial class BaseManager : IAssemblyManager
public virtual void Read(Stream stream, string fileName)
{
MemoryStream memoryStream = new();
stream.CopyTo(memoryStream);
AssemblyDefinition assembly = AssemblyDefinition.FromBytes(memoryStream.ToArray());
//AssemblyDefinition assembly = AssemblyDefinition.FromStream(stream);//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
AssemblyDefinition assembly = AssemblyDefinition.FromStream(stream);
assembly.InitializeResolvers(this);
fileName = Path.GetFileNameWithoutExtension(fileName);
string assemblyName = ToAssemblyName(assembly);
m_assemblies.Add(fileName, assembly);
m_assemblies[assemblyName] = assembly;
m_assemblyStreams.Add(assembly, memoryStream);
m_assemblyStreams.Add(assembly, stream);
}
public virtual void Unload(string fileName)

View File

@ -19,11 +19,8 @@ public sealed class MonoManager : BaseManager
{
try
{
// Needs FromStream
using Stream stream = gameStructure.FileSystem.File.OpenRead(assemblyPath);
using MemoryStream memoryStream = new();
stream.CopyTo(memoryStream);
PEFile peFile = PEFile.FromBytes(memoryStream.ToArray());
PEFile peFile = PEFile.FromStream(stream);
if (!peFile.OptionalHeader.GetDataDirectory(DataDirectoryIndex.ClrDirectory).IsPresentInPE)
{
Logger.Info(LogCategory.Import, $"Skipping native assembly: {assemblyName}");

View File

@ -144,7 +144,7 @@ public sealed class GameStructure : IDisposable
if (resFile is not null)
{
resFile.Stream.Position = 0;
AssemblyManager.Read(resFile.Stream, assemblyName);
AssemblyManager.Read(resFile.Stream.CreateReference(), assemblyName);
}
else
{

View File

@ -32,7 +32,7 @@ public sealed class NullRefReturnProcessor(ScriptContentLevel scriptContentLevel
{
if (method.Signature?.ReturnType is ByReferenceTypeSignature)
{
method.CilMethodBody = new CilMethodBody(method);
method.CilMethodBody = new CilMethodBody();
CilInstructionCollection instructions = method.CilMethodBody.Instructions;
instructions.Add(CilOpCodes.Ldnull);
instructions.Add(CilOpCodes.Throw);

View File

@ -76,7 +76,7 @@ public sealed class UnmanagedConstraintRecoveryProcessor : IAssetProcessor
{
if (!genericParameter.HasCustomAttribute("System.Runtime.CompilerServices", "IsUnmanagedAttribute"))
{
genericParameter.AddCustomAttribute(genericParameter.Module!.DefaultImporter.ImportMethod(constructor));
genericParameter.AddCustomAttribute(genericParameter.DeclaringModule!.DefaultImporter.ImportMethod(constructor));
}
}
}

View File

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AssetRipper.CIL" Version="1.1.6" />
<PackageReference Include="AssetRipper.CIL" Version="1.2.0" />
</ItemGroup>
<ItemGroup>

View File

@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.3" />
<PackageReference Include="AsmResolver.DotNet" Version="6.0.0-beta.4" />
<PackageReference Include="AssetRipper.Primitives" Version="3.2.0" />
</ItemGroup>

View File

@ -4,7 +4,7 @@ public static class ResolutionExtensions
{
public static TypeDefinition CheckedResolve(this ITypeDescriptor reference)
{
if (reference.Module == null)
if (reference.ContextModule == null)
{
throw new ResolutionException(reference);
}
@ -19,7 +19,7 @@ public static class ResolutionExtensions
public static MethodDefinition CheckedResolve(this IMethodDefOrRef reference)
{
if (reference.Module == null)
if (reference.ContextModule == null)
{
throw new ResolutionException(reference);
}

View File

@ -81,7 +81,7 @@ internal static class TypeDefinitionExtensions
public static bool TryGetPrimitiveType(this TypeDefinition typeDefinition, out PrimitiveType primitiveType)
{
if ((typeDefinition.Module?.Assembly?.IsCorLib ?? false) && typeDefinition.ToTypeSignature() is CorLibTypeSignature corLibTypeSignature)
if ((typeDefinition.DeclaringModule?.Assembly?.IsCorLib ?? false) && typeDefinition.ToTypeSignature() is CorLibTypeSignature corLibTypeSignature)
{
primitiveType = corLibTypeSignature.ToPrimitiveType();
return primitiveType.IsCSharpPrimitive();