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"); |     settings.beginGroup("Shortcuts"); | ||||||
| 
 | 
 | ||||||
|     for (HotkeyGroupMap::iterator group = hotkey_groups.begin(); group != hotkey_groups.end(); ++group) |     for (auto group : hotkey_groups) | ||||||
|     { |     { | ||||||
|         settings.beginGroup(group->first); |         settings.beginGroup(group.first); | ||||||
|         for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey) |         for (auto hotkey : group.second) | ||||||
|         { |         { | ||||||
|             settings.beginGroup(hotkey->first); |             settings.beginGroup(hotkey.first); | ||||||
|             settings.setValue(QString("KeySeq"), hotkey->second.keyseq.toString()); |             settings.setValue(QString("KeySeq"), hotkey.second.keyseq.toString()); | ||||||
|             settings.setValue(QString("Context"), hotkey->second.context); |             settings.setValue(QString("Context"), hotkey.second.context); | ||||||
|             settings.endGroup(); |             settings.endGroup(); | ||||||
|         } |         } | ||||||
|         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()
 |     // Make sure NOT to use a reference here because it would become invalid once we call beginGroup()
 | ||||||
|     QStringList groups = settings.childGroups(); |     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(); |         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
 |             // 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.keyseq = QKeySequence::fromString(settings.value("KeySeq", hk.keyseq.toString()).toString()); | ||||||
|             hk.context = (Qt::ShortcutContext)settings.value("Context", hk.context).toInt(); |             hk.context = (Qt::ShortcutContext)settings.value("Context", hk.context).toInt(); | ||||||
|             if (hk.shortcut) |             if (hk.shortcut) | ||||||
|  | @ -91,13 +91,13 @@ GHotkeysDialog::GHotkeysDialog(QWidget* parent): QDialog(parent) | ||||||
| { | { | ||||||
|     ui.setupUi(this); |     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)); |         QTreeWidgetItem* toplevel_item = new QTreeWidgetItem(QStringList(group.first)); | ||||||
|         for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey) |         for (auto hotkey : group.second) | ||||||
|         { |         { | ||||||
|             QStringList columns; |             QStringList columns; | ||||||
|             columns << hotkey->first << hotkey->second.keyseq.toString(); |             columns << hotkey.first << hotkey.second.keyseq.toString(); | ||||||
|             QTreeWidgetItem* item = new QTreeWidgetItem(columns); |             QTreeWidgetItem* item = new QTreeWidgetItem(columns); | ||||||
|             toplevel_item->addChild(item); |             toplevel_item->addChild(item); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -9,32 +9,29 @@ | ||||||
| #include <sstream> | #include <sstream> | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| 
 | 
 | ||||||
| bool BreakPoints::IsAddressBreakPoint(u32 _iAddress) | bool BreakPoints::IsAddressBreakPoint(u32 iAddress) | ||||||
| { | { | ||||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) |     auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress; }; | ||||||
|         if (i->iAddress == _iAddress) |     auto it   = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); | ||||||
|             return true; |     return it != m_BreakPoints.end(); | ||||||
|     return false; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool BreakPoints::IsTempBreakPoint(u32 _iAddress) | bool BreakPoints::IsTempBreakPoint(u32 iAddress) | ||||||
| { | { | ||||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) |     auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress && bp.bTemporary; }; | ||||||
|         if (i->iAddress == _iAddress && i->bTemporary) |     auto it   = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond); | ||||||
|             return true; |     return it != m_BreakPoints.end(); | ||||||
|     return false; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const | BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const | ||||||
| { | { | ||||||
|     TBreakPointsStr bps; |     TBreakPointsStr bps; | ||||||
|     for (TBreakPoints::const_iterator i = m_BreakPoints.begin(); |     for (auto breakpoint : m_BreakPoints) | ||||||
|         i != m_BreakPoints.end(); ++i) |  | ||||||
|     { |     { | ||||||
|         if (!i->bTemporary) |         if (!breakpoint.bTemporary) | ||||||
|         { |         { | ||||||
|             std::stringstream bp; |             std::stringstream bp; | ||||||
|             bp << std::hex << i->iAddress << " " << (i->bOn ? "n" : ""); |             bp << std::hex << breakpoint.iAddress << " " << (breakpoint.bOn ? "n" : ""); | ||||||
|             bps.push_back(bp.str()); |             bps.push_back(bp.str()); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -44,13 +41,13 @@ BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const | ||||||
| 
 | 
 | ||||||
| void BreakPoints::AddFromStrings(const TBreakPointsStr& bps) | void BreakPoints::AddFromStrings(const TBreakPointsStr& bps) | ||||||
| { | { | ||||||
|     for (TBreakPointsStr::const_iterator i = bps.begin(); i != bps.end(); ++i) |     for (auto bps_item : bps) | ||||||
|     { |     { | ||||||
|         TBreakPoint bp; |         TBreakPoint bp; | ||||||
|         std::stringstream bpstr; |         std::stringstream bpstr; | ||||||
|         bpstr << std::hex << *i; |         bpstr << std::hex << bps_item; | ||||||
|         bpstr >> bp.iAddress; |         bpstr >> bp.iAddress; | ||||||
|         bp.bOn = i->find("n") != i->npos; |         bp.bOn = bps_item.find("n") != bps_item.npos; | ||||||
|         bp.bTemporary = false; |         bp.bTemporary = false; | ||||||
|         Add(bp); |         Add(bp); | ||||||
|     } |     } | ||||||
|  | @ -84,16 +81,10 @@ void BreakPoints::Add(u32 em_address, bool temp) | ||||||
| 
 | 
 | ||||||
| void BreakPoints::Remove(u32 em_address) | void BreakPoints::Remove(u32 em_address) | ||||||
| { | { | ||||||
|     for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) |     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 (i->iAddress == em_address) |     if (it != m_BreakPoints.end()) | ||||||
|         { |         m_BreakPoints.erase(it); | ||||||
|             m_BreakPoints.erase(i); |  | ||||||
|             //if (jit)
 |  | ||||||
|             //    jit->GetBlockCache()->InvalidateICache(em_address, 4);
 |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void BreakPoints::Clear() | void BreakPoints::Clear() | ||||||
|  | @ -107,21 +98,23 @@ void BreakPoints::Clear() | ||||||
|     //        }
 |     //        }
 | ||||||
|     //    );
 |     //    );
 | ||||||
|     //}
 |     //}
 | ||||||
|      | 
 | ||||||
|     m_BreakPoints.clear(); |     m_BreakPoints.clear(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| MemChecks::TMemChecksStr MemChecks::GetStrings() const | MemChecks::TMemChecksStr MemChecks::GetStrings() const | ||||||
| { | { | ||||||
|     TMemChecksStr mcs; |     TMemChecksStr mcs; | ||||||
|     for (TMemChecks::const_iterator i = m_MemChecks.begin(); |     for (auto memcheck : m_MemChecks) | ||||||
|         i != m_MemChecks.end(); ++i) |  | ||||||
|     { |     { | ||||||
|         std::stringstream mc; |         std::stringstream mc; | ||||||
|         mc << std::hex << i->StartAddress; |         mc << std::hex << memcheck.StartAddress; | ||||||
|         mc << " " << (i->bRange ? i->EndAddress : i->StartAddress) << " " << |         mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " " | ||||||
|             (i->bRange ? "n" : "") << (i->OnRead ? "r" : "") << |             << (memcheck.bRange  ? "n" : "") | ||||||
|             (i->OnWrite ? "w" : "") << (i->Log ? "l" : "") << (i->Break ? "p" : ""); |             << (memcheck.OnRead  ? "r" : "") | ||||||
|  |             << (memcheck.OnWrite ? "w" : "") | ||||||
|  |             << (memcheck.Log     ? "l" : "") | ||||||
|  |             << (memcheck.Break   ? "p" : ""); | ||||||
|         mcs.push_back(mc.str()); |         mcs.push_back(mc.str()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -130,17 +123,17 @@ MemChecks::TMemChecksStr MemChecks::GetStrings() const | ||||||
| 
 | 
 | ||||||
| void MemChecks::AddFromStrings(const TMemChecksStr& mcs) | void MemChecks::AddFromStrings(const TMemChecksStr& mcs) | ||||||
| { | { | ||||||
|     for (TMemChecksStr::const_iterator i = mcs.begin(); i != mcs.end(); ++i) |     for (auto mcs_item : mcs) | ||||||
|     { |     { | ||||||
|         TMemCheck mc; |         TMemCheck mc; | ||||||
|         std::stringstream mcstr; |         std::stringstream mcstr; | ||||||
|         mcstr << std::hex << *i; |         mcstr << std::hex << mcs_item; | ||||||
|         mcstr >> mc.StartAddress; |         mcstr >> mc.StartAddress; | ||||||
|         mc.bRange    = i->find("n") != i->npos; |         mc.bRange   = mcs_item.find("n") != mcs_item.npos; | ||||||
|         mc.OnRead    = i->find("r") != i->npos; |         mc.OnRead   = mcs_item.find("r") != mcs_item.npos; | ||||||
|         mc.OnWrite    = i->find("w") != i->npos; |         mc.OnWrite  = mcs_item.find("w") != mcs_item.npos; | ||||||
|         mc.Log        = i->find("l") != i->npos; |         mc.Log      = mcs_item.find("l") != mcs_item.npos; | ||||||
|         mc.Break    = i->find("p") != i->npos; |         mc.Break    = mcs_item.find("p") != mcs_item.npos; | ||||||
|         if (mc.bRange) |         if (mc.bRange) | ||||||
|             mcstr >> mc.EndAddress; |             mcstr >> mc.EndAddress; | ||||||
|         else |         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) |     if (GetMemCheck(rMemoryCheck.StartAddress) == 0) | ||||||
|         m_MemChecks.push_back(_rMemoryCheck); |         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) |     auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; }; | ||||||
|     { |     auto it   = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond); | ||||||
|         if (i->StartAddress == _Address) |     if (it != m_MemChecks.end()) | ||||||
|         { |         m_MemChecks.erase(it); | ||||||
|             m_MemChecks.erase(i); |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| TMemCheck *MemChecks::GetMemCheck(u32 address) | 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) |         if (i->bRange) | ||||||
|         { |         { | ||||||
|  |  | ||||||
|  | @ -14,32 +14,33 @@ class DebugInterface; | ||||||
| 
 | 
 | ||||||
| struct TBreakPoint | struct TBreakPoint | ||||||
| { | { | ||||||
|     u32        iAddress; |     u32  iAddress; | ||||||
|     bool    bOn; |     bool bOn; | ||||||
|     bool    bTemporary; |     bool bTemporary; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct TMemCheck | struct TMemCheck | ||||||
| { | { | ||||||
|     TMemCheck() { |     TMemCheck(): | ||||||
|         numHits = 0; |         StartAddress(0), EndAddress(0), | ||||||
|         StartAddress = EndAddress = 0; |         bRange(false), OnRead(false), OnWrite(false), | ||||||
|         bRange = OnRead = OnWrite = Log = Break = false; |         Log(false), Break(false), numHits(0) | ||||||
|     } |     { } | ||||||
|     u32 StartAddress; |  | ||||||
|     u32 EndAddress; |  | ||||||
| 
 | 
 | ||||||
|     bool    bRange; |     u32  StartAddress; | ||||||
|  |     u32  EndAddress; | ||||||
| 
 | 
 | ||||||
|     bool    OnRead; |     bool bRange; | ||||||
|     bool    OnWrite; |  | ||||||
| 
 | 
 | ||||||
|     bool    Log; |     bool OnRead; | ||||||
|     bool    Break; |     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); |                 bool write, int size, u32 pc); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | @ -56,22 +57,22 @@ public: | ||||||
|     void AddFromStrings(const TBreakPointsStr& bps); |     void AddFromStrings(const TBreakPointsStr& bps); | ||||||
| 
 | 
 | ||||||
|     // is address breakpoint
 |     // is address breakpoint
 | ||||||
|     bool IsAddressBreakPoint(u32 _iAddress); |     bool IsAddressBreakPoint(u32 iAddress); | ||||||
|     bool IsTempBreakPoint(u32 _iAddress); |     bool IsTempBreakPoint(u32 iAddress); | ||||||
| 
 | 
 | ||||||
|     // Add BreakPoint
 |     // Add BreakPoint
 | ||||||
|     void Add(u32 em_address, bool temp=false); |     void Add(u32 em_address, bool temp=false); | ||||||
|     void Add(const TBreakPoint& bp); |     void Add(const TBreakPoint& bp); | ||||||
| 
 | 
 | ||||||
|     // Remove Breakpoint
 |     // Remove Breakpoint
 | ||||||
|     void Remove(u32 _iAddress); |     void Remove(u32 iAddress); | ||||||
|     void Clear(); |     void Clear(); | ||||||
| 
 | 
 | ||||||
|     void DeleteByAddress(u32 _Address); |     void DeleteByAddress(u32 Address); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     TBreakPoints m_BreakPoints; |     TBreakPoints m_BreakPoints; | ||||||
|     u32    m_iBreakOnCount; |     u32          m_iBreakOnCount; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -89,7 +90,7 @@ public: | ||||||
|     TMemChecksStr GetStrings() const; |     TMemChecksStr GetStrings() const; | ||||||
|     void AddFromStrings(const TMemChecksStr& mcs); |     void AddFromStrings(const TMemChecksStr& mcs); | ||||||
| 
 | 
 | ||||||
|     void Add(const TMemCheck& _rMemoryCheck); |     void Add(const TMemCheck& rMemoryCheck); | ||||||
| 
 | 
 | ||||||
|     // memory breakpoint
 |     // memory breakpoint
 | ||||||
|     TMemCheck *GetMemCheck(u32 address); |     TMemCheck *GetMemCheck(u32 address); | ||||||
|  | @ -99,4 +100,3 @@ public: | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
| 
 |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue