diff options
author | bunnei <bunneidev@gmail.com> | 2021-03-13 08:31:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-13 08:31:09 +0100 |
commit | 3b85ac2ac4d72ca4acf83ef9642b9a42e912993e (patch) | |
tree | 0866144bff9afac6b0250cc8372512e57f709892 | |
parent | Merge pull request #6028 from bunnei/raster-cache (diff) | |
parent | time: Fix CalculateSpanBetween implementation (diff) | |
download | yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar.gz yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar.bz2 yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar.lz yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar.xz yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.tar.zst yuzu-3b85ac2ac4d72ca4acf83ef9642b9a42e912993e.zip |
-rw-r--r-- | src/core/hle/service/time/time.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp index 18629dd7e..16c942e21 100644 --- a/src/core/hle/service/time/time.cpp +++ b/src/core/hle/service/time/time.cpp @@ -341,12 +341,18 @@ void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser( void Module::Interface::CalculateSpanBetween(Kernel::HLERequestContext& ctx) { LOG_DEBUG(Service_Time, "called"); - IPC::RequestParser rp{ctx}; - const auto snapshot_a = rp.PopRaw<Clock::ClockSnapshot>(); - const auto snapshot_b = rp.PopRaw<Clock::ClockSnapshot>(); + Clock::ClockSnapshot snapshot_a; + Clock::ClockSnapshot snapshot_b; + + const auto snapshot_a_data = ctx.ReadBuffer(0); + const auto snapshot_b_data = ctx.ReadBuffer(1); + + std::memcpy(&snapshot_a, snapshot_a_data.data(), sizeof(Clock::ClockSnapshot)); + std::memcpy(&snapshot_b, snapshot_b_data.data(), sizeof(Clock::ClockSnapshot)); Clock::TimeSpanType time_span_type{}; s64 span{}; + if (const ResultCode result{snapshot_a.steady_clock_time_point.GetSpanBetween( snapshot_b.steady_clock_time_point, span)}; result != RESULT_SUCCESS) { |