diff --git a/Source/AssetRipper.Import/AssetRipper.Import.csproj b/Source/AssetRipper.Import/AssetRipper.Import.csproj
index e6ca64b48..26a7a9daa 100644
--- a/Source/AssetRipper.Import/AssetRipper.Import.csproj
+++ b/Source/AssetRipper.Import/AssetRipper.Import.csproj
@@ -8,12 +8,12 @@
-
+
-
+
diff --git a/Source/AssetRipper.Import/Structure/Assembly/Managers/BaseManager.cs b/Source/AssetRipper.Import/Structure/Assembly/Managers/BaseManager.cs
index 323abaa8d..fc65a092c 100644
--- a/Source/AssetRipper.Import/Structure/Assembly/Managers/BaseManager.cs
+++ b/Source/AssetRipper.Import/Structure/Assembly/Managers/BaseManager.cs
@@ -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)
diff --git a/Source/AssetRipper.Import/Structure/Assembly/Managers/MonoManager.cs b/Source/AssetRipper.Import/Structure/Assembly/Managers/MonoManager.cs
index 2b0003832..3821af972 100644
--- a/Source/AssetRipper.Import/Structure/Assembly/Managers/MonoManager.cs
+++ b/Source/AssetRipper.Import/Structure/Assembly/Managers/MonoManager.cs
@@ -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}");
diff --git a/Source/AssetRipper.Import/Structure/GameStructure.cs b/Source/AssetRipper.Import/Structure/GameStructure.cs
index aa40f0075..8c2af0615 100644
--- a/Source/AssetRipper.Import/Structure/GameStructure.cs
+++ b/Source/AssetRipper.Import/Structure/GameStructure.cs
@@ -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
{
diff --git a/Source/AssetRipper.Processing/Assemblies/NullRefReturnProcessor.cs b/Source/AssetRipper.Processing/Assemblies/NullRefReturnProcessor.cs
index af765a742..f43892bde 100644
--- a/Source/AssetRipper.Processing/Assemblies/NullRefReturnProcessor.cs
+++ b/Source/AssetRipper.Processing/Assemblies/NullRefReturnProcessor.cs
@@ -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);
diff --git a/Source/AssetRipper.Processing/Assemblies/UnmanagedConstraintRecoveryProcessor.cs b/Source/AssetRipper.Processing/Assemblies/UnmanagedConstraintRecoveryProcessor.cs
index b9c784e2c..20d1108bb 100644
--- a/Source/AssetRipper.Processing/Assemblies/UnmanagedConstraintRecoveryProcessor.cs
+++ b/Source/AssetRipper.Processing/Assemblies/UnmanagedConstraintRecoveryProcessor.cs
@@ -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));
}
}
}
diff --git a/Source/AssetRipper.Processing/AssetRipper.Processing.csproj b/Source/AssetRipper.Processing/AssetRipper.Processing.csproj
index 636ebe418..c3ede491f 100644
--- a/Source/AssetRipper.Processing/AssetRipper.Processing.csproj
+++ b/Source/AssetRipper.Processing/AssetRipper.Processing.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/Source/AssetRipper.SerializationLogic/AssetRipper.SerializationLogic.csproj b/Source/AssetRipper.SerializationLogic/AssetRipper.SerializationLogic.csproj
index b1e14c25e..a03a86064 100644
--- a/Source/AssetRipper.SerializationLogic/AssetRipper.SerializationLogic.csproj
+++ b/Source/AssetRipper.SerializationLogic/AssetRipper.SerializationLogic.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/Source/AssetRipper.SerializationLogic/Extensions/ResolutionExtensions.cs b/Source/AssetRipper.SerializationLogic/Extensions/ResolutionExtensions.cs
index aa9da8c8b..aad771434 100644
--- a/Source/AssetRipper.SerializationLogic/Extensions/ResolutionExtensions.cs
+++ b/Source/AssetRipper.SerializationLogic/Extensions/ResolutionExtensions.cs
@@ -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);
}
diff --git a/Source/AssetRipper.SerializationLogic/Extensions/TypeDefinitionExtensions.cs b/Source/AssetRipper.SerializationLogic/Extensions/TypeDefinitionExtensions.cs
index 847ed8a27..4dac7e5e1 100644
--- a/Source/AssetRipper.SerializationLogic/Extensions/TypeDefinitionExtensions.cs
+++ b/Source/AssetRipper.SerializationLogic/Extensions/TypeDefinitionExtensions.cs
@@ -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();