mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-07 05:36:07 +00:00
Merge pull request #23 from lioncash/iter
CResourceIterator: Cleanup and undefined behavior prevention
This commit is contained in:
commit
9c2b7e4c95
@ -20,6 +20,8 @@ public:
|
|||||||
Next();
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual ~CResourceIterator() = default;
|
||||||
|
|
||||||
virtual CResourceEntry* Next()
|
virtual CResourceEntry* Next()
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
@ -27,7 +29,7 @@ public:
|
|||||||
if (mIter != mpkStore->mResourceEntries.end())
|
if (mIter != mpkStore->mResourceEntries.end())
|
||||||
{
|
{
|
||||||
mpCurEntry = mIter->second;
|
mpCurEntry = mIter->second;
|
||||||
mIter++;
|
++mIter;
|
||||||
}
|
}
|
||||||
else mpCurEntry = nullptr;
|
else mpCurEntry = nullptr;
|
||||||
}
|
}
|
||||||
@ -36,33 +38,33 @@ public:
|
|||||||
return mpCurEntry;
|
return mpCurEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool DoneIterating() const
|
bool DoneIterating() const
|
||||||
{
|
{
|
||||||
return mpCurEntry == nullptr;
|
return mpCurEntry == nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline operator bool() const
|
explicit operator bool() const
|
||||||
{
|
{
|
||||||
return !DoneIterating();
|
return !DoneIterating();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline CResourceEntry* operator*() const
|
CResourceEntry* operator*() const
|
||||||
{
|
{
|
||||||
return mpCurEntry;
|
return mpCurEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline CResourceEntry* operator->() const
|
CResourceEntry* operator->() const
|
||||||
{
|
{
|
||||||
return mpCurEntry;
|
return mpCurEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline CResourceIterator& operator++()
|
CResourceIterator& operator++()
|
||||||
{
|
{
|
||||||
Next();
|
Next();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline CResourceIterator operator++(int)
|
CResourceIterator operator++(int)
|
||||||
{
|
{
|
||||||
CResourceIterator Copy = *this;
|
CResourceIterator Copy = *this;
|
||||||
Next();
|
Next();
|
||||||
@ -81,7 +83,7 @@ public:
|
|||||||
Next();
|
Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual CResourceEntry* Next()
|
CResourceEntry* Next() override
|
||||||
{
|
{
|
||||||
do {
|
do {
|
||||||
CResourceIterator::Next();
|
CResourceIterator::Next();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user