From e83c3ec229baef33b3a798b8ca38e6908a00d003 Mon Sep 17 00:00:00 2001 From: Ulysses Wu Date: Tue, 8 Jul 2025 22:15:35 +0800 Subject: [PATCH] Fix event add/remove --- Source/VSProj/Src/Tools/CodeTranslator.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Source/VSProj/Src/Tools/CodeTranslator.cs b/Source/VSProj/Src/Tools/CodeTranslator.cs index 561056b..2d50d9e 100644 --- a/Source/VSProj/Src/Tools/CodeTranslator.cs +++ b/Source/VSProj/Src/Tools/CodeTranslator.cs @@ -1137,6 +1137,15 @@ unsafe MethodIdInfo getMethodId(MethodReference callee, MethodDefinition caller, }; } + if (method.IsSpecialName && (method.IsAddOn || method.IsRemoveOn || method.IsGetter || method.IsSetter) && !isNewMethod(method) && !isNewClass(method.DeclaringType) && isCompilerGenerated(method)) + { + return new MethodIdInfo() + { + Id = addExternMethod(callee, caller), + Type = CallType.Extern + }; + } + if (method.Parameters.Any(p => p.ParameterType.IsPointer) || method.ReturnType.IsPointer) { Console.WriteLine("Warning: unsafe method, " + method + " in " + method.DeclaringType);