diff options
| author | Subv <subv2112@gmail.com> | 2018-01-06 21:14:14 -0500 | 
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2018-01-07 17:11:43 -0500 | 
| commit | 226786f0b05405b4c0287786f106ae2e08feefec (patch) | |
| tree | f4cb770adc575fa749b98e60f8f5fa0012cdc4c6 /src/core/hle/kernel | |
| parent | bc8ef64804841c996aeebfe7ce23f34347a0be60 (diff) | |
IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.
Domain object ids are always stored immediately after the raw data.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 8 | 
2 files changed, 7 insertions, 3 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index 85dd80159..e784d59cc 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -95,7 +95,7 @@ void HLERequestContext::ParseCommandBuffer(u32_le* src_cmdbuf, bool incoming) {          // If this is an incoming message, only CommandType "Request" has a domain header          // All outgoing domain messages have the domain header          domain_message_header = -            std::make_unique<IPC::DomainMessageHeader>(rp.PopRaw<IPC::DomainMessageHeader>()); +            std::make_unique<IPC::DomainRequestMessageHeader>(rp.PopRaw<IPC::DomainRequestMessageHeader>());      }      data_payload_header = diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 7de13b36b..b5649931d 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -154,7 +154,11 @@ public:          return buffer_x_desciptors;      } -    const std::unique_ptr<IPC::DomainMessageHeader>& GetDomainMessageHeader() const { +    const std::vector<IPC::BufferDescriptorABW>& BufferDescriptorA() const { +        return buffer_a_desciptors; +    } + +    const std::unique_ptr<IPC::DomainRequestMessageHeader>& GetDomainMessageHeader() const {          return domain_message_header;      } @@ -172,7 +176,7 @@ private:      std::unique_ptr<IPC::CommandHeader> command_header;      std::unique_ptr<IPC::HandleDescriptorHeader> handle_descriptor_header;      std::unique_ptr<IPC::DataPayloadHeader> data_payload_header; -    std::unique_ptr<IPC::DomainMessageHeader> domain_message_header; +    std::unique_ptr<IPC::DomainRequestMessageHeader> domain_message_header;      std::vector<IPC::BufferDescriptorX> buffer_x_desciptors;      std::vector<IPC::BufferDescriptorABW> buffer_a_desciptors;      std::vector<IPC::BufferDescriptorABW> buffer_b_desciptors;  | 
