From 56b0822bf86fba46769d8663099b17cbaa2f72e6 Mon Sep 17 00:00:00 2001 From: ds5678 <49847914+ds5678@users.noreply.github.com> Date: Sat, 22 Nov 2025 20:20:12 -0800 Subject: [PATCH] Add ResolveContextForMethod overload taking Cpp2IlMethodRef as a parameter --- Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs index b6dfe7cf..8b8d6b21 100644 --- a/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/ApplicationAnalysisContext.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Reflection; using AssetRipper.Primitives; @@ -198,6 +199,14 @@ private void PopulateMethodsByAddressTable() return ResolveContextForType(methodDefinition?.DeclaringType)?.Methods.FirstOrDefault(m => m.Definition == methodDefinition); } + [return: NotNullIfNotNull(nameof(methodReference))] + public ConcreteGenericMethodAnalysisContext? ResolveContextForMethod(Cpp2IlMethodRef? methodReference) + { + return methodReference is not null + ? ConcreteGenericMethodsByRef.TryGetValue(methodReference, out var context) ? context : new(methodReference, this) + : null; + } + public FieldAnalysisContext? ResolveContextForField(Il2CppFieldDefinition? field) { return ResolveContextForType(field?.DeclaringType)?.Fields.FirstOrDefault(f => f.BackingData?.Field == field);