summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-03-13 08:31:09 +0100
committerGitHub <noreply@github.com>2021-03-13 08:31:09 +0100
commit3b85ac2ac4d72ca4acf83ef9642b9a42e912993e (patch)
tree0866144bff9afac6b0250cc8372512e57f709892
parentMerge pull request #6028 from bunnei/raster-cache (diff)
parenttime: Fix CalculateSpanBetween implementation (diff)
downloadyuzu-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.cpp12
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) {