Improve iterator usage.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5528 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Jordan Woyak 2010-05-28 23:14:16 +00:00
parent 0d75190af9
commit ceabf90bda
21 changed files with 1132 additions and 1153 deletions

View File

@ -15,6 +15,8 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#include <algorithm>
#include "LogManager.h"
#include "ConsoleListener.h"
#include "Timer.h"
@ -160,28 +162,19 @@ void LogContainer::addListener(LogListener *listener) {
}
void LogContainer::removeListener(LogListener *listener) {
std::vector<LogListener *>::iterator i;
for(i = listeners.begin(); i != listeners.end(); i++) {
if ((*i) == listener) {
listeners.erase(i);
break;
}
}
std::vector<LogListener *>::iterator i = std::find(listeners.begin(), listeners.end(), listener);
if (listeners.end() != i)
listeners.erase(i);
}
bool LogContainer::isListener(LogListener *listener) const {
std::vector<LogListener *>::const_iterator i;
for (i = listeners.begin(); i != listeners.end(); i++) {
if ((*i) == listener) {
return true;
}
}
return false;
std::vector<LogListener *>::const_iterator i = std::find(listeners.begin(), listeners.end(), listener);
return listeners.end() != i;
}
void LogContainer::trigger(LogTypes::LOG_LEVELS level, const char *msg) {
std::vector<LogListener *>::const_iterator i;
for (i = listeners.begin(); i != listeners.end(); i++) {
for (i = listeners.begin(); i != listeners.end(); ++i) {
(*i)->Log(level, msg);
}
}

View File

@ -20,7 +20,7 @@
void SymbolDB::List()
{
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
DEBUG_LOG(HLE,"%s @ %08x: %i bytes (hash %08x) : %i calls", iter->second.name.c_str(), iter->second.address, iter->second.size, iter->second.hash,iter->second.numCalls);
}
@ -37,7 +37,7 @@ void SymbolDB::Clear(const char *prefix)
void SymbolDB::Index()
{
int i = 0;
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
iter->second.index = i++;
}
@ -45,7 +45,7 @@ void SymbolDB::Index()
Symbol *SymbolDB::GetSymbolFromName(const char *name)
{
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
if (!strcmp(iter->second.name.c_str(), name))
return &iter->second;

View File

@ -587,10 +587,10 @@ void FindFunctionsAfterBLR(PPCSymbolDB *func_db)
{
vector<u32> funcAddrs;
for (PPCSymbolDB::XFuncMap::iterator iter = func_db->GetIterator(); iter != func_db->End(); iter++)
for (PPCSymbolDB::XFuncMap::iterator iter = func_db->GetIterator(); iter != func_db->End(); ++iter)
funcAddrs.push_back(iter->second.address + iter->second.size);
for (vector<u32>::iterator iter = funcAddrs.begin(); iter != funcAddrs.end(); iter++)
for (vector<u32>::iterator iter = funcAddrs.begin(); iter != funcAddrs.end(); ++iter)
{
u32 location = *iter;
while (true)
@ -622,7 +622,7 @@ void FindFunctions(u32 startAddr, u32 endAddr, PPCSymbolDB *func_db)
int numLeafs = 0, numNice = 0, numUnNice = 0;
int numTimer = 0, numRFI = 0, numStraightLeaf = 0;
int leafSize = 0, niceSize = 0, unniceSize = 0;
for (PPCSymbolDB::XFuncMap::iterator iter = func_db->GetIterator(); iter != func_db->End(); iter++)
for (PPCSymbolDB::XFuncMap::iterator iter = func_db->GetIterator(); iter != func_db->End(); ++iter)
{
if (iter->second.address == 4)
{

View File

@ -103,7 +103,7 @@ Symbol *PPCSymbolDB::GetSymbolFromAddr(u32 addr)
return &it->second;
else
{
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
if (addr >= iter->second.address && addr < iter->second.address + iter->second.size)
return &iter->second;
@ -123,12 +123,12 @@ const char *PPCSymbolDB::GetDescription(u32 addr)
void PPCSymbolDB::FillInCallers()
{
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
iter->second.callers.clear();
}
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
Symbol &f = iter->second;
for (size_t i = 0; i < f.calls.size(); i++)
@ -158,7 +158,7 @@ void PPCSymbolDB::PrintCalls(u32 funcAddr) const
{
const Symbol &f = iter->second;
INFO_LOG(HLE, "The function %s at %08x calls:", f.name.c_str(), f.address);
for (std::vector<SCall>::const_iterator fiter = f.calls.begin(); fiter!=f.calls.end(); fiter++)
for (std::vector<SCall>::const_iterator fiter = f.calls.begin(); fiter!=f.calls.end(); ++fiter)
{
XFuncMap::const_iterator n = functions.find(fiter->function);
if (n != functions.end())
@ -180,7 +180,7 @@ void PPCSymbolDB::PrintCallers(u32 funcAddr) const
{
const Symbol &f = iter->second;
INFO_LOG(CONSOLE,"The function %s at %08x is called by:",f.name.c_str(),f.address);
for (std::vector<SCall>::const_iterator fiter = f.callers.begin(); fiter != f.callers.end(); fiter++)
for (std::vector<SCall>::const_iterator fiter = f.callers.begin(); fiter != f.callers.end(); ++fiter)
{
XFuncMap::const_iterator n = functions.find(fiter->function);
if (n != functions.end())
@ -306,7 +306,7 @@ bool PPCSymbolDB::SaveMap(const char *filename, bool WithCodes) const
{
fprintf(f,"%08x %08x %08x %i %s\n", rSymbol.address, rSymbol.size, rSymbol.address,
0, rSymbol.name.c_str());
itr++;
++itr;
}
// Save a code file
@ -315,7 +315,7 @@ bool PPCSymbolDB::SaveMap(const char *filename, bool WithCodes) const
// Get the current and next address
LastAddress = rSymbol.address;
LastSymbolName = rSymbol.name;
itr++;
++itr;
/* To make nice straight lines we fill out the name with spaces, we also cut off
all names longer than 25 letters */

View File

@ -68,7 +68,7 @@ bool SignatureDB::Save(const char *filename)
}
int fcount = (int)database.size();
fwrite(&fcount, 4, 1, f);
for (FuncDB::const_iterator iter = database.begin(); iter != database.end(); iter++)
for (FuncDB::const_iterator iter = database.begin(); iter != database.end(); ++iter)
{
FuncDesc temp;
memset(&temp, 0, sizeof(temp));
@ -99,7 +99,7 @@ u32 SignatureDB::Add(u32 startAddr, u32 size, const char *name)
void SignatureDB::List()
{
for (FuncDB::iterator iter = database.begin(); iter != database.end(); iter++)
for (FuncDB::iterator iter = database.begin(); iter != database.end(); ++iter)
{
INFO_LOG(HLE,"%s : %i bytes, hash = %08x",iter->second.name.c_str(), iter->second.size, iter->first);
}
@ -113,7 +113,7 @@ void SignatureDB::Clear()
void SignatureDB::Apply(PPCSymbolDB *symbol_db)
{
for (FuncDB::const_iterator iter = database.begin(); iter != database.end(); iter++)
for (FuncDB::const_iterator iter = database.begin(); iter != database.end(); ++iter)
{
u32 hash = iter->first;
Symbol *function = symbol_db->GetSymbolFromHash(hash);
@ -138,7 +138,7 @@ void SignatureDB::Apply(PPCSymbolDB *symbol_db)
void SignatureDB::Initialize(PPCSymbolDB *symbol_db, const char *prefix)
{
std::string prefix_str(prefix);
for (PPCSymbolDB::XFuncMap::const_iterator iter = symbol_db->GetConstIterator(); iter != symbol_db->End(); iter++)
for (PPCSymbolDB::XFuncMap::const_iterator iter = symbol_db->GetConstIterator(); iter != symbol_db->End(); ++iter)
{
if ((iter->second.name.substr(0, prefix_str.size()) == prefix_str) || prefix_str.empty())
{

View File

@ -383,7 +383,7 @@ void CCodeWindow::NotifyMapLoaded()
//symbols->Show(false); // hide it for faster filling
symbols->Freeze(); // HyperIris: wx style fast filling
symbols->Clear();
for (PPCSymbolDB::XFuncMap::iterator iter = g_symbolDB.GetIterator(); iter != g_symbolDB.End(); iter++)
for (PPCSymbolDB::XFuncMap::iterator iter = g_symbolDB.GetIterator(); iter != g_symbolDB.End(); ++iter)
{
int idx = symbols->Append(wxString::FromAscii(iter->second.name.c_str()));
symbols->SetClientData(idx, (void*)&iter->second);

View File

@ -357,7 +357,7 @@ CNANDContentManager::~CNANDContentManager()
while (itr != m_Map.end())
{
delete itr->second;
itr++;
++itr;
}
m_Map.clear();
}

View File

@ -155,7 +155,7 @@ void CPatchAddEdit::AddRemoveEntry(wxCommandEvent& event)
SaveEntryData(itCurEntry);
PatchEngine::PatchEntry peEmptyEntry(PatchEngine::PATCH_8BIT, 0x00000000, 0x00000000);
itCurEntry++;
++itCurEntry;
currentItem++;
itCurEntry = tempEntries.insert(itCurEntry, peEmptyEntry);
@ -172,7 +172,7 @@ void CPatchAddEdit::AddRemoveEntry(wxCommandEvent& event)
if (itCurEntry != tempEntries.begin())
{
itCurEntry--;
--itCurEntry;
currentItem--;
}
else

View File

@ -142,12 +142,6 @@ struct TargetRectangle : public MathUtil::Rectangle<int>
#define LOG_VTX()
#ifdef _WIN32
#define ERASE_THROUGH_ITERATOR(container, iterator) iterator = container.erase(iterator)
#else
#define ERASE_THROUGH_ITERATOR(container, iterator) container.erase(iterator++)
#endif
bool IsD3D();
#endif // _VIDEOCOMMON_H

View File

@ -75,7 +75,7 @@ Symbol *DSPSymbolDB::GetSymbolFromAddr(u32 addr)
return &it->second;
else
{
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); iter++)
for (XFuncMap::iterator iter = functions.begin(); iter != functions.end(); ++iter)
{
if (addr >= iter->second.address && addr < iter->second.address + iter->second.size)
return &iter->second;

View File

@ -207,7 +207,7 @@ void DSPDebuggerLLE::UpdateSymbolMap()
m_SymbolList->Freeze(); // HyperIris: wx style fast filling
m_SymbolList->Clear();
for (SymbolDB::XFuncMap::iterator iter = DSPSymbols::g_dsp_symbol_db.GetIterator();
iter != DSPSymbols::g_dsp_symbol_db.End(); iter++)
iter != DSPSymbols::g_dsp_symbol_db.End(); ++iter)
{
int idx = m_SymbolList->Append(wxString::FromAscii(iter->second.name.c_str()));
m_SymbolList->SetClientData(idx, (void*)&iter->second);

File diff suppressed because it is too large Load Diff

View File

@ -314,7 +314,7 @@ void PixelShaderCache::Init()
void PixelShaderCache::Clear()
{
PSCache::iterator iter = PixelShaders.begin();
for (; iter != PixelShaders.end(); iter++)
for (; iter != PixelShaders.end(); ++iter)
iter->second.Destroy();
PixelShaders.clear();

View File

@ -72,7 +72,7 @@ void TextureCache::Init()
void TextureCache::Invalidate(bool shutdown)
{
for (TexCache::iterator iter = textures.begin(); iter != textures.end(); iter++)
for (TexCache::iterator iter = textures.begin(); iter != textures.end(); ++iter)
iter->second.Destroy(shutdown);
textures.clear();
HiresTextures::Shutdown();
@ -86,7 +86,7 @@ void TextureCache::InvalidateRange(u32 start_address, u32 size)
if (iter->second.IntersectsMemoryRange(start_address, size))
{
iter->second.Destroy(false);
ERASE_THROUGH_ITERATOR(textures, iter);
textures.erase(iter++);
}
else {
++iter;
@ -131,7 +131,7 @@ void TextureCache::Cleanup()
}
else
{
iter++;
++iter;
}
}
}

View File

@ -13,7 +13,7 @@ void DialogManager::AddDlg(HWND hDialog)
bool DialogManager::IsDialogMessage(LPMSG message)
{
WindowList::iterator iter;
for (iter=dialogs.begin(); iter!=dialogs.end(); iter++)
for (iter=dialogs.begin(); iter!=dialogs.end(); ++iter)
{
if (::IsDialogMessage(*iter,message))
return true;
@ -24,6 +24,6 @@ bool DialogManager::IsDialogMessage(LPMSG message)
void DialogManager::EnableAll(BOOL enable)
{
WindowList::iterator iter;
for (iter=dialogs.begin(); iter!=dialogs.end(); iter++)
for (iter=dialogs.begin(); iter!=dialogs.end(); ++iter)
EnableWindow(*iter,enable);
}

View File

@ -70,7 +70,7 @@ namespace W32Util
page.hInstance = hInstance;
int i=0;
for (DlgList::iterator iter = list.begin(); iter != list.end(); iter++, i++)
for (DlgList::iterator iter = list.begin(); iter != list.end(); ++iter, ++i)
{
if (wizard)
{
@ -146,7 +146,7 @@ namespace W32Util
PropertySheet(&sheet);
if (!floating)
{
for (DlgList::iterator iter = list.begin(); iter != list.end(); iter++)
for (DlgList::iterator iter = list.begin(); iter != list.end(); ++iter)
{
delete iter->tab;
}

File diff suppressed because it is too large Load Diff

View File

@ -302,7 +302,7 @@ void FramebufferManager::replaceVirtualXFB()
s32 srcUpper = it->xfbAddr + 2 * it->xfbWidth * it->xfbHeight;
s32 lineSize = 2 * it->xfbWidth;
it++;
++it;
while (it != m_virtualXFBList.end())
{
@ -332,7 +332,7 @@ void FramebufferManager::replaceVirtualXFB()
}
}
it++;
++it;
}
}
@ -357,7 +357,7 @@ void FramebufferManager::copyToVirtualXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight
if (it == m_virtualXFBList.end() && (int)m_virtualXFBList.size() >= MAX_VIRTUAL_XFB)
{
// replace the last virtual XFB
it--;
--it;
}
if (it != m_virtualXFBList.end())
@ -524,11 +524,9 @@ const XFBSource** FramebufferManager::getVirtualXFBSource(u32 xfbAddr, u32 fbWid
u32 srcLower = xfbAddr;
u32 srcUpper = xfbAddr + 2 * fbWidth * fbHeight;
VirtualXFBListType::iterator it;
for (it = m_virtualXFBList.end(); it != m_virtualXFBList.begin();)
VirtualXFBListType::reverse_iterator it;
for (it = m_virtualXFBList.rbegin(); it != m_virtualXFBList.rend(); ++it)
{
--it;
u32 dstLower = it->xfbAddr;
u32 dstUpper = it->xfbAddr + 2 * it->xfbWidth * it->xfbHeight;

View File

@ -160,7 +160,7 @@ void PixelShaderCache::Shutdown()
glDeleteProgramsARB(1, &s_DepthMatrixProgram);
s_DepthMatrixProgram = 0;
PSCache::iterator iter = pshaders.begin();
for (; iter != pshaders.end(); iter++)
for (; iter != pshaders.end(); ++iter)
iter->second.Destroy();
pshaders.clear();
}

View File

@ -199,15 +199,15 @@ void TextureMngr::ProgressiveCleanup()
{
if (!iter->second.isRenderTarget) {
iter->second.Destroy(false);
ERASE_THROUGH_ITERATOR(textures, iter);
textures.erase(iter++);
}
else {
iter->second.Destroy(false);
ERASE_THROUGH_ITERATOR(textures, iter);
textures.erase(iter++);
}
}
else
iter++;
++iter;
}
}
@ -219,7 +219,7 @@ void TextureMngr::InvalidateRange(u32 start_address, u32 size)
if (iter->second.IntersectsMemoryRange(start_address, size))
{
iter->second.Destroy(false);
ERASE_THROUGH_ITERATOR(textures, iter);
textures.erase(iter++);
}
else {
++iter;
@ -820,6 +820,6 @@ void TextureMngr::DisableStage(int stage)
void TextureMngr::ClearRenderTargets()
{
for (TexCache::iterator iter = textures.begin(); iter != textures.end(); iter++)
for (TexCache::iterator iter = textures.begin(); iter != textures.end(); ++iter)
iter->second.isRenderTarget = false;
}

View File

@ -116,7 +116,7 @@ void VertexShaderCache::Init()
void VertexShaderCache::Shutdown()
{
for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); iter++)
for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); ++iter)
iter->second.Destroy();
vshaders.clear();
}