@@ -971,19 +971,15 @@ private void EmitAwaitableSetupTeardown(
971
971
IL_0000: call string [BenchmarkDotNet]BenchmarkDotNet.Samples.SampleBenchmark::GlobalCleanup()
972
972
IL_0005: pop
973
973
*/
974
- LocalBuilder callResultLocal ;
974
+ ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
975
+ /*
976
+ IL_0026: ldarg.0
977
+ IL_0027: ldfld class BenchmarkDotNet.Helpers.AwaitHelper BenchmarkDotNet.Helpers.Runnable_0::awaitHelper
978
+ */
979
+ ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
980
+ ilBuilder . Emit ( OpCodes . Ldfld , awaitHelperField ) ;
975
981
if ( targetMethod . IsStatic )
976
982
{
977
- ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
978
- var callResultType = returnTypeInfo . OriginMethodReturnType ;
979
-
980
- /*
981
- .locals init (
982
- [0] class [System.Private.CoreLib]System.Threading.Tasks.Task task
983
- )
984
- */
985
- callResultLocal = ilBuilder . DeclareLocal ( callResultType ) ;
986
-
987
983
ilBuilder . Emit ( OpCodes . Call , targetMethod ) ;
988
984
989
985
}
@@ -994,33 +990,14 @@ [0] class [System.Private.CoreLib]System.Threading.Tasks.Task task
994
990
}
995
991
else
996
992
{
997
- ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
998
- var callResultType = returnTypeInfo . OriginMethodReturnType ;
999
-
1000
- /*
1001
- .locals init (
1002
- [0] class [System.Private.CoreLib]System.Threading.Tasks.Task task
1003
- )
1004
- */
1005
- callResultLocal = ilBuilder . DeclareLocal ( callResultType ) ;
1006
-
1007
993
ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
1008
994
ilBuilder . Emit ( OpCodes . Call , targetMethod ) ;
1009
995
}
1010
996
1011
997
/*
1012
998
// awaitHelper.GetResult(...);
1013
- IL_0006: stloc.0
1014
- IL_0007: ldarg.0
1015
- IL_0008: ldfld class BenchmarkDotNet.Helpers.AwaitHelper BenchmarkDotNet.Helpers.Runnable_0::awaitHelper
1016
- IL_000d: ldloc.0
1017
999
IL_000e: callvirt instance void BenchmarkDotNet.Helpers.AwaitHelper::GetResult(class [System.Private.CoreLib]System.Threading.Tasks.Task)
1018
1000
*/
1019
-
1020
- ilBuilder . EmitStloc ( callResultLocal ) ;
1021
- ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
1022
- ilBuilder . Emit ( OpCodes . Ldfld , awaitHelperField ) ;
1023
- ilBuilder . Emit ( OpCodes . Ldloc_0 ) ;
1024
1001
ilBuilder . Emit ( OpCodes . Callvirt , returnTypeInfo . GetResultMethod ) ;
1025
1002
1026
1003
if ( targetMethod . ReturnType != typeof ( void ) )
0 commit comments