From 06fbffbab3d4c0ff7205984a03feec0b2a561806 Mon Sep 17 00:00:00 2001 From: Sejong Oh Date: Fri, 1 Apr 2016 16:09:00 -0700 Subject: [PATCH] Fix singlinkgen test. If the address of SingLink is stored at stack, GC.Collect() cannot collect the object since the address variable is still alive at stack. Commit migrated from https://github.com/dotnet/coreclr/commit/030136228abccb8b6d4737f92358bec8a9a50c09 --- .../src/GC/Scenarios/SingLinkList/singlinkgen.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/coreclr/tests/src/GC/Scenarios/SingLinkList/singlinkgen.cs b/src/coreclr/tests/src/GC/Scenarios/SingLinkList/singlinkgen.cs index 028a1a3..db68ab7 100644 --- a/src/coreclr/tests/src/GC/Scenarios/SingLinkList/singlinkgen.cs +++ b/src/coreclr/tests/src/GC/Scenarios/SingLinkList/singlinkgen.cs @@ -12,6 +12,7 @@ namespace SingLink { using System; + using System.Runtime.CompilerServices; public class SingLinkGen { @@ -72,17 +73,26 @@ namespace SingLink { Console.WriteLine(retVal); return ( retVal == iRep*iObj); } - + + [MethodImplAttribute(MethodImplOptions.NoInlining)] + void Create(int iObj) { + Mv_Sing = new SingLink(iObj); + } + + [MethodImplAttribute(MethodImplOptions.NoInlining)] + void Delete() { + Mv_Sing = null; + GC.Collect(); + } public int SetLink(int iRep, int iObj) { for(int i=0; i