mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-06-02 14:07:10 +02:00
fixup1
This commit is contained in:
parent
819d7eb46d
commit
965e2d563a
2 changed files with 9 additions and 12 deletions
|
|
@ -438,7 +438,7 @@ void WriteOutArgument(bool is_domain, CallArguments& args, u8* raw_data, HLERequ
|
||||||
|
|
||||||
template <bool Domain, typename T, typename... A>
|
template <bool Domain, typename T, typename... A>
|
||||||
void CmifReplyWrapImpl(HLERequestContext& ctx, T& t, Result (T::*f)(A...)) {
|
void CmifReplyWrapImpl(HLERequestContext& ctx, T& t, Result (T::*f)(A...)) {
|
||||||
const auto mgr = ctx.GetManager();
|
const auto mgr = ctx.GetManager().get();
|
||||||
// Verify domain state.
|
// Verify domain state.
|
||||||
if constexpr (!Domain) {
|
if constexpr (!Domain) {
|
||||||
const bool is_domain = mgr ? mgr->IsDomain() : false;
|
const bool is_domain = mgr ? mgr->IsDomain() : false;
|
||||||
|
|
|
||||||
|
|
@ -78,32 +78,29 @@ public:
|
||||||
memset(cmdbuf, 0, sizeof(u32) * IPC::COMMAND_BUFFER_LENGTH);
|
memset(cmdbuf, 0, sizeof(u32) * IPC::COMMAND_BUFFER_LENGTH);
|
||||||
|
|
||||||
IPC::CommandHeader header{};
|
IPC::CommandHeader header{};
|
||||||
|
auto const mgr = ctx.GetManager().get();
|
||||||
|
|
||||||
// The entire size of the raw data section in u32 units, including the 16 bytes of mandatory
|
// The entire size of the raw data section in u32 units, including the 16 bytes of mandatory
|
||||||
// padding.
|
// padding.
|
||||||
u32 raw_data_size = ctx.write_size =
|
u32 raw_data_size = ctx.write_size = ctx.IsTipc() ? normal_params_size - 1 : normal_params_size;
|
||||||
ctx.IsTipc() ? normal_params_size - 1 : normal_params_size;
|
|
||||||
u32 num_handles_to_move{};
|
u32 num_handles_to_move{};
|
||||||
u32 num_domain_objects{};
|
u32 num_domain_objects{};
|
||||||
const bool always_move_handles{
|
const bool always_move_handles = (u32(flags) & u32(Flags::AlwaysMoveHandles)) != 0;
|
||||||
(static_cast<u32>(flags) & static_cast<u32>(Flags::AlwaysMoveHandles)) != 0};
|
if (!mgr->IsDomain() || always_move_handles) {
|
||||||
if (!ctx.GetManager()->IsDomain() || always_move_handles) {
|
|
||||||
num_handles_to_move = num_objects_to_move;
|
num_handles_to_move = num_objects_to_move;
|
||||||
} else {
|
} else {
|
||||||
num_domain_objects = num_objects_to_move;
|
num_domain_objects = num_objects_to_move;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.GetManager()->IsDomain()) {
|
if (mgr->IsDomain()) {
|
||||||
raw_data_size +=
|
raw_data_size += u32(sizeof(DomainMessageHeader) / sizeof(u32) + num_domain_objects);
|
||||||
static_cast<u32>(sizeof(DomainMessageHeader) / sizeof(u32) + num_domain_objects);
|
|
||||||
ctx.write_size += num_domain_objects;
|
ctx.write_size += num_domain_objects;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.IsTipc()) {
|
if (ctx.IsTipc()) {
|
||||||
header.type.Assign(ctx.GetCommandType());
|
header.type.Assign(ctx.GetCommandType());
|
||||||
} else {
|
} else {
|
||||||
raw_data_size += static_cast<u32>(sizeof(IPC::DataPayloadHeader) / sizeof(u32) + 4 +
|
raw_data_size += u32(sizeof(IPC::DataPayloadHeader) / sizeof(u32) + 4 + normal_params_size);
|
||||||
normal_params_size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
header.data_size.Assign(raw_data_size);
|
header.data_size.Assign(raw_data_size);
|
||||||
|
|
@ -126,7 +123,7 @@ public:
|
||||||
if (!ctx.IsTipc()) {
|
if (!ctx.IsTipc()) {
|
||||||
AlignWithPadding();
|
AlignWithPadding();
|
||||||
|
|
||||||
if (ctx.GetManager()->IsDomain() && ctx.HasDomainMessageHeader()) {
|
if (mgr->IsDomain() && ctx.HasDomainMessageHeader()) {
|
||||||
IPC::DomainMessageHeader domain_header{};
|
IPC::DomainMessageHeader domain_header{};
|
||||||
domain_header.num_objects = num_domain_objects;
|
domain_header.num_objects = num_domain_objects;
|
||||||
PushRaw(domain_header);
|
PushRaw(domain_header);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue