diff options
author | bunnei <bunneidev@gmail.com> | 2021-04-20 05:54:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-20 05:54:25 +0200 |
commit | 17704271f420f6846d3db4d5e72745ce3d0a9117 (patch) | |
tree | 3e832d70c5f41798efd7a139d3b33d71a6d7488c /src/core | |
parent | Merge pull request #6215 from lioncash/duplicate (diff) | |
parent | general: Write buffers before pushing raw arguments (diff) | |
download | yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar.gz yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar.bz2 yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar.lz yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar.xz yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.tar.zst yuzu-17704271f420f6846d3db4d5e72745ce3d0a9117.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/set/set.cpp | 3 | ||||
-rw-r--r-- | src/core/hle/service/time/time_zone_service.cpp | 6 | ||||
-rw-r--r-- | src/core/hle/service/vi/vi.cpp | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp index bc7dc776f..fbdc4793d 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 3117627cf..19d7a1a0c 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<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 diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 348360b51..7ae07d072 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<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) { |