diff options
| author | 2020-08-06 03:11:19 -0400 | |
|---|---|---|
| committer | 2020-08-06 03:11:21 -0400 | |
| commit | 61cd7eb47d947bd332ea306e74a1491c42854a61 (patch) | |
| tree | 774cd9eedd36f1510d45575bc1b97926b97a594f /src/core/tools/freezer.cpp | |
| parent | freezer: Take address values by value (diff) | |
| download | yuzu-61cd7eb47d947bd332ea306e74a1491c42854a61.tar.gz yuzu-61cd7eb47d947bd332ea306e74a1491c42854a61.tar.xz yuzu-61cd7eb47d947bd332ea306e74a1491c42854a61.zip | |
freezer: Move entry finding to its own function
Cleans up the callsites in other functions.
Diffstat (limited to 'src/core/tools/freezer.cpp')
| -rw-r--r-- | src/core/tools/freezer.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp index 4ca1870f2..5c674a099 100644 --- a/src/core/tools/freezer.cpp +++ b/src/core/tools/freezer.cpp | |||
| @@ -113,19 +113,15 @@ void Freezer::Unfreeze(VAddr address) { | |||
| 113 | bool Freezer::IsFrozen(VAddr address) const { | 113 | bool Freezer::IsFrozen(VAddr address) const { |
| 114 | std::lock_guard lock{entries_mutex}; | 114 | std::lock_guard lock{entries_mutex}; |
| 115 | 115 | ||
| 116 | return std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | 116 | return FindEntry(address) != entries.cend(); |
| 117 | return entry.address == address; | ||
| 118 | }) != entries.end(); | ||
| 119 | } | 117 | } |
| 120 | 118 | ||
| 121 | void Freezer::SetFrozenValue(VAddr address, u64 value) { | 119 | void Freezer::SetFrozenValue(VAddr address, u64 value) { |
| 122 | std::lock_guard lock{entries_mutex}; | 120 | std::lock_guard lock{entries_mutex}; |
| 123 | 121 | ||
| 124 | const auto iter = std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | 122 | const auto iter = FindEntry(address); |
| 125 | return entry.address == address; | ||
| 126 | }); | ||
| 127 | 123 | ||
| 128 | if (iter == entries.end()) { | 124 | if (iter == entries.cend()) { |
| 129 | LOG_ERROR(Common_Memory, | 125 | LOG_ERROR(Common_Memory, |
| 130 | "Tried to set freeze value for address={:016X} that is not frozen!", address); | 126 | "Tried to set freeze value for address={:016X} that is not frozen!", address); |
| 131 | return; | 127 | return; |
| @@ -140,11 +136,9 @@ void Freezer::SetFrozenValue(VAddr address, u64 value) { | |||
| 140 | std::optional<Freezer::Entry> Freezer::GetEntry(VAddr address) const { | 136 | std::optional<Freezer::Entry> Freezer::GetEntry(VAddr address) const { |
| 141 | std::lock_guard lock{entries_mutex}; | 137 | std::lock_guard lock{entries_mutex}; |
| 142 | 138 | ||
| 143 | const auto iter = std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | 139 | const auto iter = FindEntry(address); |
| 144 | return entry.address == address; | ||
| 145 | }); | ||
| 146 | 140 | ||
| 147 | if (iter == entries.end()) { | 141 | if (iter == entries.cend()) { |
| 148 | return std::nullopt; | 142 | return std::nullopt; |
| 149 | } | 143 | } |
| 150 | 144 | ||
| @@ -157,6 +151,16 @@ std::vector<Freezer::Entry> Freezer::GetEntries() const { | |||
| 157 | return entries; | 151 | return entries; |
| 158 | } | 152 | } |
| 159 | 153 | ||
| 154 | Freezer::Entries::iterator Freezer::FindEntry(VAddr address) { | ||
| 155 | return std::find_if(entries.begin(), entries.end(), | ||
| 156 | [address](const Entry& entry) { return entry.address == address; }); | ||
| 157 | } | ||
| 158 | |||
| 159 | Freezer::Entries::const_iterator Freezer::FindEntry(VAddr address) const { | ||
| 160 | return std::find_if(entries.begin(), entries.end(), | ||
| 161 | [address](const Entry& entry) { return entry.address == address; }); | ||
| 162 | } | ||
| 163 | |||
| 160 | void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) { | 164 | void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) { |
| 161 | if (!IsActive()) { | 165 | if (!IsActive()) { |
| 162 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); | 166 | LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); |