forked from eden-emu/eden
		
	freezer: Move entry finding to its own function
Cleans up the callsites in other functions.
This commit is contained in:
		
							parent
							
								
									4a54d99f0d
								
							
						
					
					
						commit
						21229948aa
					
				
					 2 changed files with 21 additions and 12 deletions
				
			
		|  | @ -113,19 +113,15 @@ void Freezer::Unfreeze(VAddr address) { | |||
| bool Freezer::IsFrozen(VAddr address) const { | ||||
|     std::lock_guard lock{entries_mutex}; | ||||
| 
 | ||||
|     return std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | ||||
|                return entry.address == address; | ||||
|            }) != entries.end(); | ||||
|     return FindEntry(address) != entries.cend(); | ||||
| } | ||||
| 
 | ||||
| void Freezer::SetFrozenValue(VAddr address, u64 value) { | ||||
|     std::lock_guard lock{entries_mutex}; | ||||
| 
 | ||||
|     const auto iter = std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | ||||
|         return entry.address == address; | ||||
|     }); | ||||
|     const auto iter = FindEntry(address); | ||||
| 
 | ||||
|     if (iter == entries.end()) { | ||||
|     if (iter == entries.cend()) { | ||||
|         LOG_ERROR(Common_Memory, | ||||
|                   "Tried to set freeze value for address={:016X} that is not frozen!", address); | ||||
|         return; | ||||
|  | @ -140,11 +136,9 @@ void Freezer::SetFrozenValue(VAddr address, u64 value) { | |||
| std::optional<Freezer::Entry> Freezer::GetEntry(VAddr address) const { | ||||
|     std::lock_guard lock{entries_mutex}; | ||||
| 
 | ||||
|     const auto iter = std::find_if(entries.begin(), entries.end(), [address](const Entry& entry) { | ||||
|         return entry.address == address; | ||||
|     }); | ||||
|     const auto iter = FindEntry(address); | ||||
| 
 | ||||
|     if (iter == entries.end()) { | ||||
|     if (iter == entries.cend()) { | ||||
|         return std::nullopt; | ||||
|     } | ||||
| 
 | ||||
|  | @ -157,6 +151,16 @@ std::vector<Freezer::Entry> Freezer::GetEntries() const { | |||
|     return entries; | ||||
| } | ||||
| 
 | ||||
| Freezer::Entries::iterator Freezer::FindEntry(VAddr address) { | ||||
|     return std::find_if(entries.begin(), entries.end(), | ||||
|                         [address](const Entry& entry) { return entry.address == address; }); | ||||
| } | ||||
| 
 | ||||
| Freezer::Entries::const_iterator Freezer::FindEntry(VAddr address) const { | ||||
|     return std::find_if(entries.begin(), entries.end(), | ||||
|                         [address](const Entry& entry) { return entry.address == address; }); | ||||
| } | ||||
| 
 | ||||
| void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) { | ||||
|     if (!IsActive()) { | ||||
|         LOG_DEBUG(Common_Memory, "Memory freezer has been deactivated, ending callback events."); | ||||
|  |  | |||
|  | @ -73,13 +73,18 @@ public: | |||
|     std::vector<Entry> GetEntries() const; | ||||
| 
 | ||||
| private: | ||||
|     using Entries = std::vector<Entry>; | ||||
| 
 | ||||
|     Entries::iterator FindEntry(VAddr address); | ||||
|     Entries::const_iterator FindEntry(VAddr address) const; | ||||
| 
 | ||||
|     void FrameCallback(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); | ||||
|     void FillEntryReads(); | ||||
| 
 | ||||
|     std::atomic_bool active{false}; | ||||
| 
 | ||||
|     mutable std::mutex entries_mutex; | ||||
|     std::vector<Entry> entries; | ||||
|     Entries entries; | ||||
| 
 | ||||
|     std::shared_ptr<Core::Timing::EventType> event; | ||||
|     Core::Timing::CoreTiming& core_timing; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lioncash
						Lioncash