tipc/sm: various fixes for issues
This commit is contained in:
@@ -21,8 +21,6 @@ namespace ams::ncm {
|
||||
struct ProgramId {
|
||||
u64 value;
|
||||
|
||||
static const ProgramId Invalid;
|
||||
|
||||
inline explicit operator svc::ProgramId() const {
|
||||
static_assert(sizeof(value) == sizeof(svc::ProgramId));
|
||||
return { this->value };
|
||||
@@ -53,7 +51,6 @@ namespace ams::ncm {
|
||||
return lhs.value >= rhs.value;
|
||||
}
|
||||
|
||||
inline constexpr const ProgramId ProgramId::Invalid = {};
|
||||
inline constexpr const ProgramId InvalidProgramId = ProgramId::Invalid;
|
||||
inline constexpr const ProgramId InvalidProgramId = {};
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,9 @@ namespace ams::sm {
|
||||
return Encode(name, std::strlen(name));
|
||||
}
|
||||
};
|
||||
static constexpr ServiceName InvalidServiceName = ServiceName::Encode("");
|
||||
|
||||
static constexpr inline ServiceName InvalidServiceName = ServiceName::Encode("");
|
||||
|
||||
static_assert(alignof(ServiceName) == 1, "ServiceName definition!");
|
||||
|
||||
inline bool operator==(const ServiceName &lhs, const ServiceName &rhs) {
|
||||
|
||||
@@ -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