mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #41 from archshift/itr
Changed iterators to use auto, many of which using range-based loops
This commit is contained in:
		
						commit
						0ccd026a6d
					
				
					 3 changed files with 82 additions and 93 deletions
				
			
		|  | @ -21,14 +21,14 @@ void SaveHotkeys(QSettings& settings) | |||
| { | ||||
|     settings.beginGroup("Shortcuts"); | ||||
| 
 | ||||
|     for (HotkeyGroupMap::iterator group = hotkey_groups.begin(); group != hotkey_groups.end(); ++group) | ||||
|     for (auto group : hotkey_groups) | ||||
|     { | ||||
|         settings.beginGroup(group->first); | ||||
|         for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey) | ||||
|         settings.beginGroup(group.first); | ||||
|         for (auto hotkey : group.second) | ||||
|         { | ||||
|             settings.beginGroup(hotkey->first); | ||||
|             settings.setValue(QString("KeySeq"), hotkey->second.keyseq.toString()); | ||||
|             settings.setValue(QString("Context"), hotkey->second.context); | ||||
|             settings.beginGroup(hotkey.first); | ||||
|             settings.setValue(QString("KeySeq"), hotkey.second.keyseq.toString()); | ||||
|             settings.setValue(QString("Context"), hotkey.second.context); | ||||
|             settings.endGroup(); | ||||
|         } | ||||
|         settings.endGroup(); | ||||
|  | @ -42,17 +42,17 @@ void LoadHotkeys(QSettings& settings) | |||
| 
 | ||||
|     // Make sure NOT to use a reference here because it would become invalid once we call beginGroup()
 | ||||
|     QStringList groups = settings.childGroups(); | ||||
|     for (QList<QString>::iterator group = groups.begin(); group != groups.end(); ++group) | ||||
|     for (auto group : groups) | ||||
|     { | ||||
|         settings.beginGroup(*group); | ||||
|         settings.beginGroup(group); | ||||
| 
 | ||||
|         QStringList hotkeys = settings.childGroups(); | ||||
|         for (QList<QString>::iterator hotkey = hotkeys.begin(); hotkey != hotkeys.end(); ++hotkey) | ||||
|         for (auto hotkey : hotkeys) | ||||
|         { | ||||
|             settings.beginGroup(*hotkey); | ||||
|             settings.beginGroup(hotkey); | ||||
| 
 | ||||
|             // RegisterHotkey assigns default keybindings, so use old values as default parameters
 | ||||
|             Hotkey& hk = hotkey_groups[*group][*hotkey]; | ||||
|             Hotkey& hk = hotkey_groups[group][hotkey]; | ||||
|             hk.keyseq = QKeySequence::fromString(settings.value("KeySeq", hk.keyseq.toString()).toString()); | ||||
|             hk.context = (Qt::ShortcutContext)settings.value("Context", hk.context).toInt(); | ||||
|             if (hk.shortcut) | ||||
|  | @ -91,13 +91,13 @@ GHotkeysDialog::GHotkeysDialog(QWidget* parent): QDialog(parent) | |||
| { | ||||
|     ui.setupUi(this); | ||||
| 
 | ||||
|     for (HotkeyGroupMap::iterator group = hotkey_groups.begin(); group != hotkey_groups.end(); ++group) | ||||
|     for (auto group : hotkey_groups) | ||||
|     { | ||||
|         QTreeWidgetItem* toplevel_item = new QTreeWidgetItem(QStringList(group->first)); | ||||
|         for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey) | ||||
|         QTreeWidgetItem* toplevel_item = new QTreeWidgetItem(QStringList(group.first)); | ||||
|         for (auto hotkey : group.second) | ||||
|         { | ||||
|             QStringList columns; | ||||
|             columns << hotkey->first << hotkey->second.keyseq.toString(); | ||||
|             columns << hotkey.first << hotkey.second.keyseq.toString(); | ||||
|             QTreeWidgetItem* item = new QTreeWidgetItem(columns); | ||||
|             toplevel_item->addChild(item); | ||||
|         } | ||||
|  |  | |||
|  | @ -9,32 +9,29 @@ | |||
| #include <sstream> | ||||
| #include <algorithm> | ||||
| 
 | ||||
| bool BreakPoints::IsAddressBreakPoint(u32 _iAddress) | ||||
| bool BreakPoints::IsAddressBreakPoint(u32 iAddress) | ||||
| { | ||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) | ||||
|         if (i->iAddress == _iAddress) | ||||
|             return true; | ||||
|     return false; | ||||
|     auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress; }; | ||||
|     auto it   = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); | ||||
|     return it != m_BreakPoints.end(); | ||||
| } | ||||
| 
 | ||||
| bool BreakPoints::IsTempBreakPoint(u32 _iAddress) | ||||
| bool BreakPoints::IsTempBreakPoint(u32 iAddress) | ||||
| { | ||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) | ||||
|         if (i->iAddress == _iAddress && i->bTemporary) | ||||
|             return true; | ||||
|     return false; | ||||
|     auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress && bp.bTemporary; }; | ||||
|     auto it   = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); | ||||
|     return it != m_BreakPoints.end(); | ||||
| } | ||||
| 
 | ||||
| BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const | ||||
| { | ||||
|     TBreakPointsStr bps; | ||||
|     for (TBreakPoints::const_iterator i = m_BreakPoints.begin(); | ||||
|         i != m_BreakPoints.end(); ++i) | ||||
|     for (auto breakpoint : m_BreakPoints) | ||||
|     { | ||||
|         if (!i->bTemporary) | ||||
|         if (!breakpoint.bTemporary) | ||||
|         { | ||||
|             std::stringstream bp; | ||||
|             bp << std::hex << i->iAddress << " " << (i->bOn ? "n" : ""); | ||||
|             bp << std::hex << breakpoint.iAddress << " " << (breakpoint.bOn ? "n" : ""); | ||||
|             bps.push_back(bp.str()); | ||||
|         } | ||||
|     } | ||||
|  | @ -44,13 +41,13 @@ BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const | |||
| 
 | ||||
| void BreakPoints::AddFromStrings(const TBreakPointsStr& bps) | ||||
| { | ||||
|     for (TBreakPointsStr::const_iterator i = bps.begin(); i != bps.end(); ++i) | ||||
|     for (auto bps_item : bps) | ||||
|     { | ||||
|         TBreakPoint bp; | ||||
|         std::stringstream bpstr; | ||||
|         bpstr << std::hex << *i; | ||||
|         bpstr << std::hex << bps_item; | ||||
|         bpstr >> bp.iAddress; | ||||
|         bp.bOn = i->find("n") != i->npos; | ||||
|         bp.bOn = bps_item.find("n") != bps_item.npos; | ||||
|         bp.bTemporary = false; | ||||
|         Add(bp); | ||||
|     } | ||||
|  | @ -84,16 +81,10 @@ void BreakPoints::Add(u32 em_address, bool temp) | |||
| 
 | ||||
| void BreakPoints::Remove(u32 em_address) | ||||
| { | ||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) | ||||
|     { | ||||
|         if (i->iAddress == em_address) | ||||
|         { | ||||
|             m_BreakPoints.erase(i); | ||||
|             //if (jit)
 | ||||
|             //    jit->GetBlockCache()->InvalidateICache(em_address, 4);
 | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|     auto cond = [&em_address](const TBreakPoint& bp) { return bp.iAddress == em_address; }; | ||||
|     auto it   = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); | ||||
|     if (it != m_BreakPoints.end()) | ||||
|         m_BreakPoints.erase(it); | ||||
| } | ||||
| 
 | ||||
| void BreakPoints::Clear() | ||||
|  | @ -114,14 +105,16 @@ void BreakPoints::Clear() | |||
| MemChecks::TMemChecksStr MemChecks::GetStrings() const | ||||
| { | ||||
|     TMemChecksStr mcs; | ||||
|     for (TMemChecks::const_iterator i = m_MemChecks.begin(); | ||||
|         i != m_MemChecks.end(); ++i) | ||||
|     for (auto memcheck : m_MemChecks) | ||||
|     { | ||||
|         std::stringstream mc; | ||||
|         mc << std::hex << i->StartAddress; | ||||
|         mc << " " << (i->bRange ? i->EndAddress : i->StartAddress) << " " << | ||||
|             (i->bRange ? "n" : "") << (i->OnRead ? "r" : "") << | ||||
|             (i->OnWrite ? "w" : "") << (i->Log ? "l" : "") << (i->Break ? "p" : ""); | ||||
|         mc << std::hex << memcheck.StartAddress; | ||||
|         mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " " | ||||
|             << (memcheck.bRange  ? "n" : "") | ||||
|             << (memcheck.OnRead  ? "r" : "") | ||||
|             << (memcheck.OnWrite ? "w" : "") | ||||
|             << (memcheck.Log     ? "l" : "") | ||||
|             << (memcheck.Break   ? "p" : ""); | ||||
|         mcs.push_back(mc.str()); | ||||
|     } | ||||
| 
 | ||||
|  | @ -130,17 +123,17 @@ MemChecks::TMemChecksStr MemChecks::GetStrings() const | |||
| 
 | ||||
| void MemChecks::AddFromStrings(const TMemChecksStr& mcs) | ||||
| { | ||||
|     for (TMemChecksStr::const_iterator i = mcs.begin(); i != mcs.end(); ++i) | ||||
|     for (auto mcs_item : mcs) | ||||
|     { | ||||
|         TMemCheck mc; | ||||
|         std::stringstream mcstr; | ||||
|         mcstr << std::hex << *i; | ||||
|         mcstr << std::hex << mcs_item; | ||||
|         mcstr >> mc.StartAddress; | ||||
|         mc.bRange    = i->find("n") != i->npos; | ||||
|         mc.OnRead    = i->find("r") != i->npos; | ||||
|         mc.OnWrite    = i->find("w") != i->npos; | ||||
|         mc.Log        = i->find("l") != i->npos; | ||||
|         mc.Break    = i->find("p") != i->npos; | ||||
|         mc.bRange   = mcs_item.find("n") != mcs_item.npos; | ||||
|         mc.OnRead   = mcs_item.find("r") != mcs_item.npos; | ||||
|         mc.OnWrite  = mcs_item.find("w") != mcs_item.npos; | ||||
|         mc.Log      = mcs_item.find("l") != mcs_item.npos; | ||||
|         mc.Break    = mcs_item.find("p") != mcs_item.npos; | ||||
|         if (mc.bRange) | ||||
|             mcstr >> mc.EndAddress; | ||||
|         else | ||||
|  | @ -149,27 +142,23 @@ void MemChecks::AddFromStrings(const TMemChecksStr& mcs) | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void MemChecks::Add(const TMemCheck& _rMemoryCheck) | ||||
| void MemChecks::Add(const TMemCheck& rMemoryCheck) | ||||
| { | ||||
|     if (GetMemCheck(_rMemoryCheck.StartAddress) == 0) | ||||
|         m_MemChecks.push_back(_rMemoryCheck); | ||||
|     if (GetMemCheck(rMemoryCheck.StartAddress) == 0) | ||||
|         m_MemChecks.push_back(rMemoryCheck); | ||||
| } | ||||
| 
 | ||||
| void MemChecks::Remove(u32 _Address) | ||||
| void MemChecks::Remove(u32 Address) | ||||
| { | ||||
|     for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) | ||||
|     { | ||||
|         if (i->StartAddress == _Address) | ||||
|         { | ||||
|             m_MemChecks.erase(i); | ||||
|             return; | ||||
|         } | ||||
|     } | ||||
|     auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; }; | ||||
|     auto it   = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond); | ||||
|     if (it != m_MemChecks.end()) | ||||
|         m_MemChecks.erase(it); | ||||
| } | ||||
| 
 | ||||
| TMemCheck *MemChecks::GetMemCheck(u32 address) | ||||
| { | ||||
|     for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) | ||||
|     for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) | ||||
|     { | ||||
|         if (i->bRange) | ||||
|         { | ||||
|  |  | |||
|  | @ -14,32 +14,33 @@ class DebugInterface; | |||
| 
 | ||||
| struct TBreakPoint | ||||
| { | ||||
|     u32        iAddress; | ||||
|     bool    bOn; | ||||
|     bool    bTemporary; | ||||
|     u32  iAddress; | ||||
|     bool bOn; | ||||
|     bool bTemporary; | ||||
| }; | ||||
| 
 | ||||
| struct TMemCheck | ||||
| { | ||||
|     TMemCheck() { | ||||
|         numHits = 0; | ||||
|         StartAddress = EndAddress = 0; | ||||
|         bRange = OnRead = OnWrite = Log = Break = false; | ||||
|     } | ||||
|     u32 StartAddress; | ||||
|     u32 EndAddress; | ||||
|     TMemCheck(): | ||||
|         StartAddress(0), EndAddress(0), | ||||
|         bRange(false), OnRead(false), OnWrite(false), | ||||
|         Log(false), Break(false), numHits(0) | ||||
|     { } | ||||
| 
 | ||||
|     bool    bRange; | ||||
|     u32  StartAddress; | ||||
|     u32  EndAddress; | ||||
| 
 | ||||
|     bool    OnRead; | ||||
|     bool    OnWrite; | ||||
|     bool bRange; | ||||
| 
 | ||||
|     bool    Log; | ||||
|     bool    Break; | ||||
|     bool OnRead; | ||||
|     bool OnWrite; | ||||
| 
 | ||||
|     u32        numHits; | ||||
|     bool Log; | ||||
|     bool Break; | ||||
| 
 | ||||
|     void Action(DebugInterface *dbg_interface, u32 _iValue, u32 addr, | ||||
|     u32  numHits; | ||||
| 
 | ||||
|     void Action(DebugInterface *dbg_interface, u32 iValue, u32 addr, | ||||
|                 bool write, int size, u32 pc); | ||||
| }; | ||||
| 
 | ||||
|  | @ -56,22 +57,22 @@ public: | |||
|     void AddFromStrings(const TBreakPointsStr& bps); | ||||
| 
 | ||||
|     // is address breakpoint
 | ||||
|     bool IsAddressBreakPoint(u32 _iAddress); | ||||
|     bool IsTempBreakPoint(u32 _iAddress); | ||||
|     bool IsAddressBreakPoint(u32 iAddress); | ||||
|     bool IsTempBreakPoint(u32 iAddress); | ||||
| 
 | ||||
|     // Add BreakPoint
 | ||||
|     void Add(u32 em_address, bool temp=false); | ||||
|     void Add(const TBreakPoint& bp); | ||||
| 
 | ||||
|     // Remove Breakpoint
 | ||||
|     void Remove(u32 _iAddress); | ||||
|     void Remove(u32 iAddress); | ||||
|     void Clear(); | ||||
| 
 | ||||
|     void DeleteByAddress(u32 _Address); | ||||
|     void DeleteByAddress(u32 Address); | ||||
| 
 | ||||
| private: | ||||
|     TBreakPoints m_BreakPoints; | ||||
|     u32    m_iBreakOnCount; | ||||
|     u32          m_iBreakOnCount; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  | @ -89,7 +90,7 @@ public: | |||
|     TMemChecksStr GetStrings() const; | ||||
|     void AddFromStrings(const TMemChecksStr& mcs); | ||||
| 
 | ||||
|     void Add(const TMemCheck& _rMemoryCheck); | ||||
|     void Add(const TMemCheck& rMemoryCheck); | ||||
| 
 | ||||
|     // memory breakpoint
 | ||||
|     TMemCheck *GetMemCheck(u32 address); | ||||
|  | @ -99,4 +100,3 @@ public: | |||
| }; | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue