From 6383653a8df93d3daa1d5b8e1e694905684ccbda Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 29 Oct 2018 23:20:17 -0400 Subject: [PATCH] hle_ipc: Add member function for querying the existence of a domain header Gets rid of the need to call the getter and then check for null. --- src/core/hle/ipc_helpers.h | 3 +-- src/core/hle/kernel/hle_ipc.h | 4 ++++ src/core/hle/kernel/server_session.cpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index a4bfe2eb08..0a7142adab 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h @@ -117,8 +117,7 @@ public: AlignWithPadding(); - const bool request_has_domain_header{context.GetDomainMessageHeader() != nullptr}; - if (context.Session()->IsDomain() && request_has_domain_header) { + if (context.Session()->IsDomain() && context.HasDomainMessageHeader()) { IPC::DomainMessageHeader domain_header{}; domain_header.num_objects = num_domain_objects; PushRaw(domain_header); diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 2e49826a8b..a38e34b744 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -165,6 +165,10 @@ public: return domain_message_header.get(); } + bool HasDomainMessageHeader() const { + return domain_message_header != nullptr; + } + /// Helper function to read a buffer using the appropriate buffer descriptor std::vector ReadBuffer(int buffer_index = 0) const; diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index afb3beed24..80897f3a4c 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp @@ -111,7 +111,7 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr thread) { ResultCode result = RESULT_SUCCESS; // If the session has been converted to a domain, handle the domain request - if (IsDomain() && context.GetDomainMessageHeader()) { + if (IsDomain() && context.HasDomainMessageHeader()) { result = HandleDomainSyncRequest(context); // If there is no domain header, the regular session handler is used } else if (hle_handler != nullptr) {