Modify TranslatedFunction.GetPointer () to optimize performance (#995)
* add local var to reduce calling Marshal.GetFunctionPointerForDelegate * modify code style
This commit is contained in:
parent
8226997bc7
commit
561d64e5bf
1 changed files with 7 additions and 1 deletions
|
@ -9,6 +9,7 @@ namespace ARMeilleure.Translation
|
||||||
private const int MinCallsForRejit = 100;
|
private const int MinCallsForRejit = 100;
|
||||||
|
|
||||||
private GuestFunction _func;
|
private GuestFunction _func;
|
||||||
|
private IntPtr _funcPtr;
|
||||||
|
|
||||||
private bool _rejit;
|
private bool _rejit;
|
||||||
private int _callCount;
|
private int _callCount;
|
||||||
|
@ -33,7 +34,12 @@ namespace ARMeilleure.Translation
|
||||||
|
|
||||||
public IntPtr GetPointer()
|
public IntPtr GetPointer()
|
||||||
{
|
{
|
||||||
return Marshal.GetFunctionPointerForDelegate(_func);
|
if (_funcPtr == IntPtr.Zero)
|
||||||
|
{
|
||||||
|
_funcPtr = Marshal.GetFunctionPointerForDelegate(_func);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _funcPtr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue