public static void TestImplicitByrefsOneBlock() { var s1 = new ComplexStructWithExplicitLayout(); s1.ObjectField = new Reporter("s1.ObjectField", nameof(TestImplicitByrefsOneBlock)); s1.AnotherObjectField = new Reporter("s1.AnotherObjectField", nameof(TestImplicitByrefsOneBlock)); s1.StructWithRef.ObjectField = new Reporter("s1.StructWithRef.ObjectField", nameof(TestImplicitByrefsOneBlock)); var s2 = new SimpleStructWithExplicitLayout(); s2.ObjectField = new Reporter("s2.ObjectField", nameof(TestImplicitByrefsOneBlock)); var s3 = new SimpleStructWithAutoLayout(); s3.ObjectField = new Reporter("s3.ObjectField", nameof(TestImplicitByrefsOneBlock)); s3.AnotherObjectField = new Reporter("s3.AnotherObjectField", nameof(TestImplicitByrefsOneBlock)); var s4 = new SingleObjectStruct(); s4.ObjectField = new Reporter("s4.ObjectField", nameof(TestImplicitByrefsOneBlock)); var s5 = new StructWithoutObjectFields(); var s6src = new SingleObjectStruct(); s6src.ObjectField = new Reporter("s6src.ObjectField", nameof(TestImplicitByrefsOneBlock)); var s6 = new SingleObjectStruct?(s6src); TestImplicitByrefsOneBlockInner(s1, s2, s3, s4, s5, s6); }
public static void TestLocalsOneBlock() { var s1 = new ComplexStructWithExplicitLayout(); s1.ObjectField = new Reporter("s1.ObjectField", nameof(TestLocalsOneBlock)); s1.AnotherObjectField = new Reporter("s1.AnotherObjectField", nameof(TestLocalsOneBlock)); s1.StructWithRef.ObjectField = new Reporter("s1.StructWithRef.ObjectField", nameof(TestLocalsOneBlock)); var s2 = new SimpleStructWithExplicitLayout(); s2.ObjectField = new Reporter("s2.ObjectField", nameof(TestLocalsOneBlock)); var s3 = new SimpleStructWithAutoLayout(); s3.ObjectField = new Reporter("s3.ObjectField", nameof(TestLocalsOneBlock)); s3.AnotherObjectField = new Reporter("s3.AnotherObjectField", nameof(TestLocalsOneBlock)); var s4 = new SingleObjectStruct(); s4.ObjectField = new Reporter("s4.ObjectField", nameof(TestLocalsOneBlock)); var s5 = new StructWithoutObjectFields(); var s6src = new SingleObjectStruct(); s6src.ObjectField = new Reporter("s6src.ObjectField", nameof(TestLocalsOneBlock)); var s6 = new SingleObjectStruct?(s6src); GC.Collect(2, GCCollectionMode.Forced); GC.WaitForPendingFinalizers(); CheckSuccess(); GC.KeepAlive(s1); GC.KeepAlive(s2); GC.KeepAlive(s3); GC.KeepAlive(s4); GC.KeepAlive(s5); GC.KeepAlive(s6); }
public static void TestImplicitByrefsOneBlockInner( ComplexStructWithExplicitLayout s1, SimpleStructWithExplicitLayout s2, SimpleStructWithAutoLayout s3, SingleObjectStruct s4, StructWithoutObjectFields s5, SingleObjectStruct?s6) { GC.Collect(2, GCCollectionMode.Forced); GC.WaitForPendingFinalizers(); CheckSuccess(); GC.KeepAlive(s1); GC.KeepAlive(s2); GC.KeepAlive(s3); GC.KeepAlive(s4); GC.KeepAlive(s5); GC.KeepAlive(s6); }