Use nameof in some Type.GetMethod calls

This commit is contained in:
YoshiRulz 2021-07-02 16:27:15 +10:00
parent a14da86ac0
commit 46a55d6db4
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 20 additions and 12 deletions

View File

@ -11,6 +11,16 @@ namespace BizHawk.BizInvoke
{
public static class BizInvoker
{
private static readonly MethodInfo MInfo_Encoding_GetByteCount = typeof(Encoding).GetMethod(nameof(Encoding.GetByteCount), new[] { typeof(string) })!;
private static readonly MethodInfo MInfo_Encoding_GetBytes = typeof(Encoding).GetMethod(nameof(Encoding.GetBytes), new[] { typeof(char*), typeof(int), typeof(byte*), typeof(int) })!;
private static readonly MethodInfo MInfo_ICallingConventionAdapter_GetFunctionPointerForDelegate = typeof(ICallingConventionAdapter).GetMethod(nameof(ICallingConventionAdapter.GetFunctionPointerForDelegate))!;
private static readonly MethodInfo MInfo_IMonitor_Enter = typeof(IMonitor).GetMethod(nameof(IMonitor.Enter))!;
private static readonly MethodInfo MInfo_IMonitor_Exit = typeof(IMonitor).GetMethod(nameof(IMonitor.Exit))!;
/// <summary>
/// holds information about a proxy implementation, including type and setup hooks
/// </summary>
@ -264,7 +274,7 @@ namespace BizHawk.BizInvoke
{
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, monitorField);
il.Emit(OpCodes.Callvirt, typeof(IMonitor).GetMethod("Enter")!);
il.Emit(OpCodes.Callvirt, MInfo_IMonitor_Enter);
exc = il.BeginExceptionBlock();
}
@ -290,7 +300,7 @@ namespace BizHawk.BizInvoke
il.BeginFinallyBlock();
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, monitorField);
il.Emit(OpCodes.Callvirt, typeof(IMonitor).GetMethod("Exit")!);
il.Emit(OpCodes.Callvirt, MInfo_IMonitor_Exit);
il.EndExceptionBlock();
if (returnType != typeof(void))
@ -371,7 +381,7 @@ namespace BizHawk.BizInvoke
{
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, monitorField);
il.Emit(OpCodes.Callvirt, typeof(IMonitor).GetMethod("Enter")!);
il.Emit(OpCodes.Callvirt, MInfo_IMonitor_Enter);
exc = il.BeginExceptionBlock();
}
@ -408,7 +418,7 @@ namespace BizHawk.BizInvoke
il.BeginFinallyBlock();
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, monitorField);
il.Emit(OpCodes.Callvirt, typeof(IMonitor).GetMethod("Exit")!);
il.Emit(OpCodes.Callvirt, MInfo_IMonitor_Exit);
il.EndExceptionBlock();
if (returnType != typeof(void))
@ -555,7 +565,7 @@ namespace BizHawk.BizInvoke
typeof(IntPtr),
() =>
{
var mi = typeof(ICallingConventionAdapter).GetMethod("GetFunctionPointerForDelegate")!;
var mi = MInfo_ICallingConventionAdapter_GetFunctionPointerForDelegate;
var end = il.DefineLabel();
var isNull = il.DefineLabel();
@ -589,7 +599,7 @@ namespace BizHawk.BizInvoke
var strlenbytes = il.DeclareLocal(typeof(int), false);
il.Emit(OpCodes.Ldloc, encoding);
il.Emit(OpCodes.Ldarg, (short)idx);
il.EmitCall(OpCodes.Callvirt, typeof(Encoding).GetMethod("GetByteCount", new[] { typeof(string) })!, Type.EmptyTypes);
il.EmitCall(OpCodes.Callvirt, MInfo_Encoding_GetByteCount, Type.EmptyTypes);
il.Emit(OpCodes.Stloc, strlenbytes);
var strval = il.DeclareLocal(typeof(string), true); // pin!
@ -621,7 +631,7 @@ namespace BizHawk.BizInvoke
// bytelength
il.Emit(OpCodes.Ldloc, strlenbytes);
// call
il.EmitCall(OpCodes.Callvirt, typeof(Encoding).GetMethod("GetBytes", new[] { typeof(char*), typeof(int), typeof(byte*), typeof(int) })!, Type.EmptyTypes);
il.EmitCall(OpCodes.Callvirt, MInfo_Encoding_GetBytes, Type.EmptyTypes);
// unused ret
il.Emit(OpCodes.Pop);

View File

@ -100,7 +100,7 @@ namespace BizHawk.Client.EmuHawk
}
}
_lua.RegisterFunction("print", this, GetType().GetMethod("Print"));
_lua.RegisterFunction("print", this, typeof(Win32LuaLibraries).GetMethod(nameof(Print)));
EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance;
EmulationLuaLibrary.YieldCallback = EmuYield;

View File

@ -74,10 +74,8 @@ namespace BizHawk.Client.EmuHawk
{
throw new ArgumentException($"Type {toolType.Name} does not implement {nameof(IToolForm)}.");
}
return (IToolForm) typeof(ToolManager).GetMethod("Load", new[] { typeof(bool), typeof(string) })
.MakeGenericMethod(toolType)
.Invoke(this, new object[] { focus, "" });
var mi = typeof(ToolManager).GetMethod(nameof(Load), new[] { typeof(bool), typeof(string) })!.MakeGenericMethod(toolType);
return (IToolForm) mi.Invoke(this, new object[] { focus, "" });
}
// If the form inherits ToolFormBase, it will set base properties such as Tools, Config, etc