general: Write buffers before pushing raw arguments

For consistency with the rest of the service implementations
merge-requests/60/head
Morph 2021-04-19 12:45:26 +07:00
parent 9e7713c150
commit 27eeb20001
3 changed files with 12 additions and 5 deletions

@ -104,9 +104,10 @@ void GetKeyCodeMapImpl(Kernel::HLERequestContext& ctx) {
layout = key_code->second;
}
ctx.WriteBuffer(layout);
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS);
ctx.WriteBuffer(layout);
}
} // Anonymous namespace

@ -140,11 +140,12 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {
return;
}
ctx.WriteBuffer(posix_time);
// TODO(bunnei): Handle multiple times
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.PushRaw<u32>(1); // Number of times we're returning
ctx.WriteBuffer(posix_time);
}
void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
@ -163,10 +164,11 @@ void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {
return;
}
ctx.WriteBuffer(posix_time);
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.PushRaw<u32>(1); // Number of times we're returning
ctx.WriteBuffer(posix_time);
}
} // namespace Service::Time

@ -1129,9 +1129,11 @@ private:
}
NativeWindow native_window{*buffer_queue_id};
const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
IPC::ResponseBuilder rb{ctx, 4};
rb.Push(RESULT_SUCCESS);
rb.Push<u64>(ctx.WriteBuffer(native_window.Serialize()));
rb.Push<u64>(buffer_size);
}
void CloseLayer(Kernel::HLERequestContext& ctx) {
@ -1173,10 +1175,12 @@ private:
}
NativeWindow native_window{*buffer_queue_id};
const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
IPC::ResponseBuilder rb{ctx, 6};
rb.Push(RESULT_SUCCESS);
rb.Push(*layer_id);
rb.Push<u64>(ctx.WriteBuffer(native_window.Serialize()));
rb.Push<u64>(buffer_size);
}
void DestroyStrayLayer(Kernel::HLERequestContext& ctx) {