Remove ReadProcessMemory call

New performance metric for the uncached case: About `55ms`
This commit is contained in:
AzureGem 2020-07-19 13:03:23 -04:00 committed by GitHub
parent ebbd79274b
commit 32aa32d64a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -73,14 +73,7 @@ namespace Dalamud.Game.ClientState.Actors {
private Actor ReadActorFromMemory(IntPtr offset) private Actor ReadActorFromMemory(IntPtr offset)
{ {
try { try {
// FIXME: hack workaround for trying to access the player on logout, after the main object has been deleted var actorStruct = Marshal.PtrToStructure<Structs.Actor>(offset);
if (!ReadProcessMemory(Process.GetCurrentProcess().Handle, offset, actorMem, actorMemSize, out _))
{
Log.Debug("ActorTable - ReadProcessMemory failed: likely player deletion during logout");
return null;
}
var actorStruct = Marshal.PtrToStructure<Structs.Actor>(actorMem);
switch (actorStruct.ObjectKind) { switch (actorStruct.ObjectKind) {
case ObjectKind.Player: return new PlayerCharacter(offset, actorStruct, this.dalamud); case ObjectKind.Player: return new PlayerCharacter(offset, actorStruct, this.dalamud);