Skip to content

Commit 9fa585a

Browse files
committed
Include reference to original method in new hook emitter
1 parent b34f4ce commit 9fa585a

File tree

2 files changed

+198
-70
lines changed

2 files changed

+198
-70
lines changed

ModFramework/Emitters/EventEmitter.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Copyright (C) 2024 DeathCradle
2+
Copyright (C) 2024 SignatureBeef
33
44
This file is part of Open Terraria API v3 (OTAPI)
55
@@ -73,7 +73,8 @@ public static (FieldDefinition fieldDefinition, EventDefinition eventDefinition)
7373
addMethod.Parameters.Add(parameter);
7474
var ilAdd = addMethod.Body.GetILProcessor();
7575

76-
var compareExchange = containingType.Module.ImportReference(modder.ResolveFirstFrameworkType("System.Threading.Interlocked")
76+
var compareExchange = containingType.Module.ImportReference(modder.ResolveTypeReference(typeof(System.Threading.Interlocked))
77+
.Resolve()
7778
.Methods.Single(m => m.Name == "CompareExchange" && m.HasGenericParameters && m.IsStatic));
7879

7980
GenericInstanceMethod methodInterlockedCompareExchange = new(compareExchange);
@@ -96,7 +97,7 @@ public static (FieldDefinition fieldDefinition, EventDefinition eventDefinition)
9697
ilAdd.Emit(OpCodes.Ldloc_1); // Load local v1
9798
ilAdd.Emit(OpCodes.Ldarg_0); // Load the parameter value
9899

99-
var delegateType = modder.ResolveFirstFrameworkType<System.Delegate>();
100+
var delegateType = modder.ResolveTypeReference(typeof(System.Delegate)).Resolve();
100101
var combine = containingType.Module.ImportReference(delegateType
101102
.Methods.Single(m => m.Name == "Combine" && m.IsStatic && m.Parameters.Count == 2));
102103
ilAdd.Emit(OpCodes.Call, combine);
@@ -154,7 +155,8 @@ public static (FieldDefinition fieldDefinition, EventDefinition eventDefinition)
154155
containingType.Methods.Add(removeMethod);
155156

156157
// add compiler generated attribute
157-
var ctor = containingType.Module.ImportReference(modder.ResolveFirstFrameworkType<System.Runtime.CompilerServices.CompilerGeneratedAttribute>()
158+
var ctor = containingType.Module.ImportReference(modder.ResolveTypeReference(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute))
159+
.Resolve()
158160
.Methods.Single(m => m.Name == ".ctor" && m.IsConstructor && m.Parameters.Count == 0));
159161
addMethod.CustomAttributes.Add(new(ctor));
160162
removeMethod.CustomAttributes.Add(new(ctor));

0 commit comments

Comments
 (0)