diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp index bc7dc776f0..fbdc4793dd 100644 --- a/src/core/hle/service/set/set.cpp +++ b/src/core/hle/service/set/set.cpp @@ -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 diff --git a/src/core/hle/service/time/time_zone_service.cpp b/src/core/hle/service/time/time_zone_service.cpp index 3117627cf3..19d7a1a0cb 100644 --- a/src/core/hle/service/time/time_zone_service.cpp +++ b/src/core/hle/service/time/time_zone_service.cpp @@ -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(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(1); // Number of times we're returning - ctx.WriteBuffer(posix_time); } } // namespace Service::Time diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 348360b51d..7ae07d072d 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -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(ctx.WriteBuffer(native_window.Serialize())); + rb.Push(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(ctx.WriteBuffer(native_window.Serialize())); + rb.Push(buffer_size); } void DestroyStrayLayer(Kernel::HLERequestContext& ctx) {