summaryrefslogtreecommitdiff
path: root/src/common/break_points.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-08-12 10:12:39 -0400
committerGravatar bunnei2014-08-12 10:12:39 -0400
commit0ccd026a6d1b5dc6439dfc3ae3d635ea4f09a1a4 (patch)
tree52c31034a28bfa3e05e780e371af4d3fb264393c /src/common/break_points.cpp
parentMerge pull request #37 from neobrain/pica (diff)
parentbreak_points.cpp: return directly from conditionals (diff)
downloadyuzu-0ccd026a6d1b5dc6439dfc3ae3d635ea4f09a1a4.tar.gz
yuzu-0ccd026a6d1b5dc6439dfc3ae3d635ea4f09a1a4.tar.xz
yuzu-0ccd026a6d1b5dc6439dfc3ae3d635ea4f09a1a4.zip
Merge pull request #41 from archshift/itr
Changed iterators to use auto, many of which using range-based loops
Diffstat (limited to '')
-rw-r--r--src/common/break_points.cpp97
1 files changed, 43 insertions, 54 deletions
diff --git a/src/common/break_points.cpp b/src/common/break_points.cpp
index 25d34a21a..25528b864 100644
--- a/src/common/break_points.cpp
+++ b/src/common/break_points.cpp
@@ -9,32 +9,29 @@
9#include <sstream> 9#include <sstream>
10#include <algorithm> 10#include <algorithm>
11 11
12bool BreakPoints::IsAddressBreakPoint(u32 _iAddress) 12bool BreakPoints::IsAddressBreakPoint(u32 iAddress)
13{ 13{
14 for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) 14 auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress; };
15 if (i->iAddress == _iAddress) 15 auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
16 return true; 16 return it != m_BreakPoints.end();
17 return false;
18} 17}
19 18
20bool BreakPoints::IsTempBreakPoint(u32 _iAddress) 19bool BreakPoints::IsTempBreakPoint(u32 iAddress)
21{ 20{
22 for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) 21 auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress && bp.bTemporary; };
23 if (i->iAddress == _iAddress && i->bTemporary) 22 auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
24 return true; 23 return it != m_BreakPoints.end();
25 return false;
26} 24}
27 25
28BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const 26BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const
29{ 27{
30 TBreakPointsStr bps; 28 TBreakPointsStr bps;
31 for (TBreakPoints::const_iterator i = m_BreakPoints.begin(); 29 for (auto breakpoint : m_BreakPoints)
32 i != m_BreakPoints.end(); ++i)
33 { 30 {
34 if (!i->bTemporary) 31 if (!breakpoint.bTemporary)
35 { 32 {
36 std::stringstream bp; 33 std::stringstream bp;
37 bp << std::hex << i->iAddress << " " << (i->bOn ? "n" : ""); 34 bp << std::hex << breakpoint.iAddress << " " << (breakpoint.bOn ? "n" : "");
38 bps.push_back(bp.str()); 35 bps.push_back(bp.str());
39 } 36 }
40 } 37 }
@@ -44,13 +41,13 @@ BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const
44 41
45void BreakPoints::AddFromStrings(const TBreakPointsStr& bps) 42void BreakPoints::AddFromStrings(const TBreakPointsStr& bps)
46{ 43{
47 for (TBreakPointsStr::const_iterator i = bps.begin(); i != bps.end(); ++i) 44 for (auto bps_item : bps)
48 { 45 {
49 TBreakPoint bp; 46 TBreakPoint bp;
50 std::stringstream bpstr; 47 std::stringstream bpstr;
51 bpstr << std::hex << *i; 48 bpstr << std::hex << bps_item;
52 bpstr >> bp.iAddress; 49 bpstr >> bp.iAddress;
53 bp.bOn = i->find("n") != i->npos; 50 bp.bOn = bps_item.find("n") != bps_item.npos;
54 bp.bTemporary = false; 51 bp.bTemporary = false;
55 Add(bp); 52 Add(bp);
56 } 53 }
@@ -84,16 +81,10 @@ void BreakPoints::Add(u32 em_address, bool temp)
84 81
85void BreakPoints::Remove(u32 em_address) 82void BreakPoints::Remove(u32 em_address)
86{ 83{
87 for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i) 84 auto cond = [&em_address](const TBreakPoint& bp) { return bp.iAddress == em_address; };
88 { 85 auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
89 if (i->iAddress == em_address) 86 if (it != m_BreakPoints.end())
90 { 87 m_BreakPoints.erase(it);
91 m_BreakPoints.erase(i);
92 //if (jit)
93 // jit->GetBlockCache()->InvalidateICache(em_address, 4);
94 return;
95 }
96 }
97} 88}
98 89
99void BreakPoints::Clear() 90void BreakPoints::Clear()
@@ -107,21 +98,23 @@ void BreakPoints::Clear()
107 // } 98 // }
108 // ); 99 // );
109 //} 100 //}
110 101
111 m_BreakPoints.clear(); 102 m_BreakPoints.clear();
112} 103}
113 104
114MemChecks::TMemChecksStr MemChecks::GetStrings() const 105MemChecks::TMemChecksStr MemChecks::GetStrings() const
115{ 106{
116 TMemChecksStr mcs; 107 TMemChecksStr mcs;
117 for (TMemChecks::const_iterator i = m_MemChecks.begin(); 108 for (auto memcheck : m_MemChecks)
118 i != m_MemChecks.end(); ++i)
119 { 109 {
120 std::stringstream mc; 110 std::stringstream mc;
121 mc << std::hex << i->StartAddress; 111 mc << std::hex << memcheck.StartAddress;
122 mc << " " << (i->bRange ? i->EndAddress : i->StartAddress) << " " << 112 mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " "
123 (i->bRange ? "n" : "") << (i->OnRead ? "r" : "") << 113 << (memcheck.bRange ? "n" : "")
124 (i->OnWrite ? "w" : "") << (i->Log ? "l" : "") << (i->Break ? "p" : ""); 114 << (memcheck.OnRead ? "r" : "")
115 << (memcheck.OnWrite ? "w" : "")
116 << (memcheck.Log ? "l" : "")
117 << (memcheck.Break ? "p" : "");
125 mcs.push_back(mc.str()); 118 mcs.push_back(mc.str());
126 } 119 }
127 120
@@ -130,17 +123,17 @@ MemChecks::TMemChecksStr MemChecks::GetStrings() const
130 123
131void MemChecks::AddFromStrings(const TMemChecksStr& mcs) 124void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
132{ 125{
133 for (TMemChecksStr::const_iterator i = mcs.begin(); i != mcs.end(); ++i) 126 for (auto mcs_item : mcs)
134 { 127 {
135 TMemCheck mc; 128 TMemCheck mc;
136 std::stringstream mcstr; 129 std::stringstream mcstr;
137 mcstr << std::hex << *i; 130 mcstr << std::hex << mcs_item;
138 mcstr >> mc.StartAddress; 131 mcstr >> mc.StartAddress;
139 mc.bRange = i->find("n") != i->npos; 132 mc.bRange = mcs_item.find("n") != mcs_item.npos;
140 mc.OnRead = i->find("r") != i->npos; 133 mc.OnRead = mcs_item.find("r") != mcs_item.npos;
141 mc.OnWrite = i->find("w") != i->npos; 134 mc.OnWrite = mcs_item.find("w") != mcs_item.npos;
142 mc.Log = i->find("l") != i->npos; 135 mc.Log = mcs_item.find("l") != mcs_item.npos;
143 mc.Break = i->find("p") != i->npos; 136 mc.Break = mcs_item.find("p") != mcs_item.npos;
144 if (mc.bRange) 137 if (mc.bRange)
145 mcstr >> mc.EndAddress; 138 mcstr >> mc.EndAddress;
146 else 139 else
@@ -149,27 +142,23 @@ void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
149 } 142 }
150} 143}
151 144
152void MemChecks::Add(const TMemCheck& _rMemoryCheck) 145void MemChecks::Add(const TMemCheck& rMemoryCheck)
153{ 146{
154 if (GetMemCheck(_rMemoryCheck.StartAddress) == 0) 147 if (GetMemCheck(rMemoryCheck.StartAddress) == 0)
155 m_MemChecks.push_back(_rMemoryCheck); 148 m_MemChecks.push_back(rMemoryCheck);
156} 149}
157 150
158void MemChecks::Remove(u32 _Address) 151void MemChecks::Remove(u32 Address)
159{ 152{
160 for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) 153 auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; };
161 { 154 auto it = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond);
162 if (i->StartAddress == _Address) 155 if (it != m_MemChecks.end())
163 { 156 m_MemChecks.erase(it);
164 m_MemChecks.erase(i);
165 return;
166 }
167 }
168} 157}
169 158
170TMemCheck *MemChecks::GetMemCheck(u32 address) 159TMemCheck *MemChecks::GetMemCheck(u32 address)
171{ 160{
172 for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i) 161 for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i)
173 { 162 {
174 if (i->bRange) 163 if (i->bRange)
175 { 164 {