Merge pull request #999 from lioncash/map
gl_rasterizer_cache: Avoid iterator invalidation issues within InvalidateRegion()
This commit is contained in:
		@@ -761,10 +761,12 @@ void RasterizerCacheOpenGL::FlushRegion(Tegra::GPUVAddr /*addr*/, size_t /*size*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RasterizerCacheOpenGL::InvalidateRegion(Tegra::GPUVAddr addr, size_t size) {
 | 
			
		||||
    for (const auto& pair : surface_cache) {
 | 
			
		||||
        const auto& surface{pair.second};
 | 
			
		||||
    for (auto iter = surface_cache.cbegin(); iter != surface_cache.cend();) {
 | 
			
		||||
        const auto& surface{iter->second};
 | 
			
		||||
        const auto& params{surface->GetSurfaceParams()};
 | 
			
		||||
 | 
			
		||||
        ++iter;
 | 
			
		||||
 | 
			
		||||
        if (params.IsOverlappingRegion(addr, size)) {
 | 
			
		||||
            UnregisterSurface(surface);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user