tipc/sm: various fixes for issues
This commit is contained in:
@@ -314,8 +314,8 @@ namespace ams::tipc::impl {
|
||||
static constexpr svc::ipc::MessageBuffer::SpecialHeader OutSpecialHeader{false, NumOutCopyHandles, NumOutMoveHandles, HasOutSpecialHeader};
|
||||
|
||||
static constexpr auto OutMessageHandleIndex = svc::ipc::MessageBuffer::GetSpecialDataIndex(OutMessageHeader, OutSpecialHeader);
|
||||
static constexpr auto OutMessageRawDataIndex = svc::ipc::MessageBuffer::GetRawDataIndex(OutMessageHeader, OutSpecialHeader);
|
||||
static constexpr auto OutMessageResultIndex = OutMessageRawDataIndex + OutDataSize / sizeof(u32);
|
||||
static constexpr auto OutMessageResultIndex = svc::ipc::MessageBuffer::GetRawDataIndex(OutMessageHeader, OutSpecialHeader);
|
||||
static constexpr auto OutMessageRawDataIndex = OutMessageResultIndex + 1;
|
||||
|
||||
/* Construction of argument serialization structs. */
|
||||
private:
|
||||
@@ -580,11 +580,11 @@ namespace ams::tipc::impl {
|
||||
/* Set output handles. */
|
||||
out_handles_holder.CopyTo(message_buffer);
|
||||
|
||||
/* Set output data. */
|
||||
out_raw_holder.CopyTo(message_buffer);
|
||||
|
||||
/* Set output result. */
|
||||
message_buffer.Set(CommandMeta::OutMessageResultIndex, result.GetValue());
|
||||
|
||||
/* Set output data. */
|
||||
out_raw_holder.CopyTo(message_buffer);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -131,11 +131,9 @@ namespace ams::tipc {
|
||||
R_TRY_CATCH(svc::ReplyAndReceive(std::addressof(dummy), nullptr, 0, reply_target, 0)) {
|
||||
R_CATCH(svc::ResultTimedOut) {
|
||||
/* Timing out is acceptable. */
|
||||
return R_CURRENT_RESULT;
|
||||
}
|
||||
R_CATCH(svc::ResultSessionClosed) {
|
||||
/* It's okay if we couldn't reply to a closed session. */
|
||||
return R_CURRENT_RESULT;
|
||||
}
|
||||
} R_END_TRY_CATCH_WITH_ABORT_UNLESS;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user