diff options
| author | bunnei <bunneidev@gmail.com> | 2021-03-12 23:31:09 -0800 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-12 23:31:09 -0800 | 
| commit | 3b85ac2ac4d72ca4acf83ef9642b9a42e912993e (patch) | |
| tree | 0866144bff9afac6b0250cc8372512e57f709892 /src/core/hle | |
| parent | 4735d18bb96b2f22fc463dae6e591f13e69cfde1 (diff) | |
| parent | 87cfe5b1da758c52df3c2d578937d86f4db79a8e (diff) | |
Merge pull request #6053 from Morph1984/time-CalculateSpanBetween
time: Fix CalculateSpanBetween implementation
Diffstat (limited to 'src/core/hle')
| -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) { | 
