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

Correct possible error on Rasterizer Caches

There was a weird bug that could happen if the object died directly and
the cache address wasn't stored.
Fernando Sahmkow 7 лет назад
Родитель
Сommit
3a08c3207b
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      src/video_core/rasterizer_cache.h

+ 2 - 1
src/video_core/rasterizer_cache.h

@@ -147,8 +147,9 @@ protected:
 
         object->SetIsRegistered(false);
         rasterizer.UpdatePagesCachedCount(object->GetCpuAddr(), object->GetSizeInBytes(), -1);
+        const CacheAddr addr = object->GetCacheAddr();
         interval_cache.subtract({GetInterval(object), ObjectSet{object}});
-        map_cache.erase(object->GetCacheAddr());
+        map_cache.erase(addr);
     }
 
     /// Returns a ticks counter used for tracking when cached objects were last modified