Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
slxdy committed Apr 2, 2024
1 parent 4c66a92 commit 153703a
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 20 deletions.
17 changes: 8 additions & 9 deletions TweaksLauncher.API/ProxyGenerator.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Cpp2IL.Core;
using Cpp2IL.Core.Api;
using Cpp2IL.Core.InstructionSets;
using Cpp2IL.Core.OutputFormats;
using Cpp2IL.Core.ProcessingLayers;
using Il2CppInterop.Generator;
Expand Down Expand Up @@ -43,8 +42,7 @@ public unsafe static bool Generate()
if (unityLibsPath == null)
return false;

InstructionSetRegistry.RegisterInstructionSet<X86InstructionSet>(Environment.Is64BitProcess ? DefaultInstructionSets.X86_64 : DefaultInstructionSets.X86_32);
LibCpp2IlBinaryRegistry.RegisterBuiltInBinarySupport();
Cpp2IlApi.Init();

Cpp2IlApi.InitializeLibCpp2Il(Launcher.Context.GameAssemblyPath, Launcher.Context.GlobalMetadataPath,
new((ushort)Launcher.Context.UnityVersion.Major, (ushort)Launcher.Context.UnityVersion.Minor, (ushort)Launcher.Context.UnityVersion.Build), false);
Expand All @@ -62,8 +60,8 @@ public unsafe static bool Generate()
Cpp2IlApi.CurrentAppContext = null;

var cecilDummies = new List<AssemblyDefinition>(asmResolverDummies.Count);
var cecilResolver = new DefaultAssemblyResolver();
using var memoryStream = new MemoryStream(10000); //10 kb initial capacity
var cecilResolver = new CecilTools.RegistryAssemblyResolver();
using var memoryStream = new MemoryStream(100000); //100 kb initial capacity
foreach (var dummy in asmResolverDummies)
{
memoryStream.Seek(0, SeekOrigin.Begin);
Expand All @@ -78,7 +76,7 @@ public unsafe static bool Generate()
AssemblyResolver = cecilResolver
});

cecilResolver.RegisterAssembly(cecilDummy);
cecilResolver.Register(cecilDummy);

cecilDummies.Add(cecilDummy);
}
Expand All @@ -89,7 +87,8 @@ public unsafe static bool Generate()
Source = cecilDummies,
OutputDir = Launcher.Context.ProxiesDirectory,
UnityBaseLibsDir = unityLibsPath,
Parallel = true
Parallel = true,
NoXrefCache = true
});

interopGenerator.AddInteropAssemblyGenerator();
Expand Down Expand Up @@ -124,13 +123,13 @@ public unsafe static bool Generate()
return versionDir;

using var http = new HttpClient();
var resp = await http.GetAsync($"https://github.com/LavaGang/Unity-Runtime-Libraries/raw/master/{versionString}.zip", HttpCompletionOption.ResponseHeadersRead);
var resp = await http.GetAsync($"https://github.com/LavaGang/Unity-Runtime-Libraries/raw/master/{versionString}.zip", HttpCompletionOption.ResponseContentRead);
if (!resp.IsSuccessStatusCode)
return null;

using var content = new MemoryStream(await resp.Content.ReadAsByteArrayAsync());

var zip = new ZipArchive(content, ZipArchiveMode.Read);
using var zip = new ZipArchive(content, ZipArchiveMode.Read);

zip.ExtractToDirectory(versionDir);
return versionDir;
Expand Down
2 changes: 1 addition & 1 deletion TweaksLauncher.API/TweaksLauncher.API.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-pre-release.14" PrivateAssets="all" />
<PackageReference Include="Samboy063.Cpp2IL.Core" Version="2022.1.0-pre-release.14" ExcludeAssets="native" PrivateAssets="all" />
<PackageReference Include="Il2CppInterop.Generator" Version="1.4.6-ci.394" PrivateAssets="all" />
<PackageReference Include="Il2CppInterop.HarmonySupport" Version="1.4.6-ci.394" PrivateAssets="all" />
<PackageReference Include="Il2CppInterop.Runtime" Version="1.4.6-ci.394" PrivateAssets="all" />
Expand Down
15 changes: 5 additions & 10 deletions TweaksLauncher.API/Utility/CecilTools.cs
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
using Mono.Cecil;
using System.Reflection;

namespace TweaksLauncher.Utility;

internal static class CecilTools
{
private static readonly MethodInfo registerAssemblyMet;

static CecilTools()
{
registerAssemblyMet = typeof(DefaultAssemblyResolver).GetMethod("RegisterAssembly", BindingFlags.Instance | BindingFlags.NonPublic)!;
}

public static void RegisterAssembly(this DefaultAssemblyResolver resolver, AssemblyDefinition assembly)
public class RegistryAssemblyResolver : DefaultAssemblyResolver
{
registerAssemblyMet.Invoke(resolver, [assembly]);
public void Register(AssemblyDefinition assembly)
{
RegisterAssembly(assembly);
}
}
}

0 comments on commit 153703a

Please sign in to comment.