diff options
| author | bunnei <bunneidev@gmail.com> | 2020-07-24 11:29:37 -0700 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-24 11:29:37 -0700 | 
| commit | d488cb843e65e10babc51edb6b741b2b3f38aeae (patch) | |
| tree | 66ea37433c81262b0fa1b339a0204f9e5aee9ed0 /src/video_core | |
| parent | f650cf8a9a4f4976356e7e2eef404e81ccc0c8aa (diff) | |
| parent | 26c6c71837728f8348602474f2dc884a1da0664e (diff) | |
Merge pull request #4388 from lioncash/written
buffer_cache: Eliminate redundant map lookup in MarkRegionAsWritten()
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index dd7ce8c99..b5dc68902 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -524,11 +524,8 @@ private:      void MarkRegionAsWritten(VAddr start, VAddr end) {          const u64 page_end = end >> WRITE_PAGE_BIT;          for (u64 page_start = start >> WRITE_PAGE_BIT; page_start <= page_end; ++page_start) { -            auto it = written_pages.find(page_start); -            if (it != written_pages.end()) { -                it->second = it->second + 1; -            } else { -                written_pages.insert_or_assign(page_start, 1); +            if (const auto [it, inserted] = written_pages.emplace(page_start, 1); !inserted) { +                ++it->second;              }          }      } @@ -539,7 +536,7 @@ private:              auto it = written_pages.find(page_start);              if (it != written_pages.end()) {                  if (it->second > 1) { -                    it->second = it->second - 1; +                    --it->second;                  } else {                      written_pages.erase(it);                  } | 
