get fresh pointer on dispose

This commit is contained in:
Stanley Dimant
2023-03-15 12:44:46 +01:00
parent 4b4e7b5563
commit 40b3bd01b3
3 changed files with 33 additions and 10 deletions

View File

@@ -96,11 +96,12 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase
{
return await _dalamudUtil.RunOnFrameworkThread(() =>
{
var curPtr = _getAddress.Invoke();
nint curPtr = IntPtr.Zero;
try
{
var drawObj = GetDrawObj();
curPtr = _getAddress.Invoke();
var drawObj = GetDrawObj(curPtr);
return IsBeingDrawn(drawObj, curPtr);
}
catch (Exception)
@@ -258,9 +259,9 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase
}
}
private unsafe IntPtr GetDrawObj()
private unsafe IntPtr GetDrawObj(nint curPtr)
{
return (IntPtr)((GameObject*)_getAddress.Invoke())->GetDrawObject();
return (IntPtr)((GameObject*)curPtr)->GetDrawObject();
}
private unsafe bool IsBeingDrawn(IntPtr drawObj, IntPtr curPtr)