From 46b3aa19875c0507efe489534035117d5fc1c6be Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 3 May 2023 11:46:26 -0700 Subject: [PATCH 1/2] Keep `this` alive across the native call for VTable-based source-generation --- .../ManagedToNativeVTableMethodGenerator.cs | 10 ++++++++++ .../Microsoft.Interop.SourceGeneration/TypeNames.cs | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs index 482cc2bc5c9bd5..04474ea49c78ae 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs @@ -185,6 +185,16 @@ public BlockSyntax GenerateStubBody(int index, ImmutableArray allStatements = setupStatements; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/TypeNames.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/TypeNames.cs index 43a458a0dfa8e1..314b8197699e2b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/TypeNames.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/TypeNames.cs @@ -51,6 +51,8 @@ public static class TypeNames public const string System_Exception = "System.Exception"; + public const string System_GC = "System.GC"; + public const string System_Type = "System.Type"; public const string System_Int16 = "System.Int16"; From 1149f9baeb7658a3b4b99edcc8e16a475f079d2d Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 3 May 2023 15:28:04 -0700 Subject: [PATCH 2/2] Update ManagedToNativeVTableMethodGenerator.cs --- .../ManagedToNativeVTableMethodGenerator.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs index 04474ea49c78ae..3792231bfadd77 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs @@ -186,6 +186,9 @@ public BlockSyntax GenerateStubBody(int index, ImmutableArray