Modify TranslatedFunction.GetPointer () to optimize performance (#995)

* add local var to reduce calling Marshal.GetFunctionPointerForDelegate

* modify code style
This commit is contained in:
Chenj168 authored and GitHub committed 2020-03-20 09:11:20 +11:00
1 parent 8226997bc7
commit 561d64e5bf
1 file changed
+7 -1
@@ -9,6 +9,7 @@ namespace ARMeilleure.Translation
private const int MinCallsForRejit = 100;
private GuestFunction _func;
private IntPtr _funcPtr;
private bool _rejit;
private int _callCount;
@@ -33,7 +34,12 @@ namespace ARMeilleure.Translation
public IntPtr GetPointer()
{
return Marshal.GetFunctionPointerForDelegate(_func);
if (_funcPtr == IntPtr.Zero)
{
_funcPtr = Marshal.GetFunctionPointerForDelegate(_func);
}
return _funcPtr;
}
}
}