Просмотр исходного кода

hle: Add safety measure around overflow in ScheduleFutureInvocation

Fix crash on Linux since 08831eecf77cedd3c4192ebab5a9c485fb15d51e.
Mary 3 лет назад
Родитель
Сommit
8639245533
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      Ryujinx.HLE/HOS/Kernel/Common/KTimeManager.cs

+ 7 - 1
Ryujinx.HLE/HOS/Kernel/Common/KTimeManager.cs

@@ -44,7 +44,13 @@ namespace Ryujinx.HLE.HOS.Kernel.Common
 
         public void ScheduleFutureInvocation(IKFutureSchedulerObject schedulerObj, long timeout)
         {
-            long timePoint = PerformanceCounter.ElapsedTicks + ConvertNanosecondsToHostTicks(timeout);
+            long startTime = PerformanceCounter.ElapsedTicks;
+            long timePoint = startTime + ConvertNanosecondsToHostTicks(timeout);
+
+            if (timePoint < startTime)
+            {
+                timePoint = long.MaxValue;
+            }
 
             lock (_context.CriticalSection.Lock)
             {