[hipc] Fix 'Unexpected result code Success returned' in Reply() (#4215)

* horizon: Add AbortOnFailureUnless()

* hipc: Replace AbortUnless() with AbortOnFailureUnless() in Reply()
This commit is contained in:
TSRBerry 2023-01-07 00:57:21 +01:00 committed by GitHub
parent 38519f3b9a
commit 81fae0d1a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 3 deletions

View File

@ -100,6 +100,14 @@ namespace Ryujinx.Horizon.Common
} }
} }
public void AbortOnFailureUnless(Result result, Result result2)
{
if (this != Success && this != result && this != result2)
{
ThrowInvalidResult();
}
}
private void ThrowInvalidResult() private void ThrowInvalidResult()
{ {
throw new InvalidResultException(this); throw new InvalidResultException(this);
@ -115,4 +123,4 @@ namespace Ryujinx.Horizon.Common
return PrintableResult; return PrintableResult;
} }
} }
} }

View File

@ -51,7 +51,7 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
{ {
Result result = ReplyImpl(sessionHandle, messageBuffer); Result result = ReplyImpl(sessionHandle, messageBuffer);
result.AbortUnless(KernelResult.TimedOut, KernelResult.PortRemoteClosed); result.AbortOnFailureUnless(KernelResult.TimedOut, KernelResult.PortRemoteClosed);
return Result.Success; return Result.Success;
} }
@ -86,4 +86,4 @@ namespace Ryujinx.Horizon.Sdk.Sf.Hipc
return result; return result;
} }
} }
} }