mirror of https://github.com/zeldaret/botw.git
Use sead::OffsetList::robustRange() when possible to simplify iteration
This commit is contained in:
parent
d839816081
commit
88a0a9eb69
|
|
@ -310,11 +310,10 @@ void BaseProcMgr::calc() {
|
|||
for (auto& proc : mProcUpdateStateList)
|
||||
proc.processStateUpdate(mCounter);
|
||||
|
||||
for (auto it = mProcUpdateStateList.robustBegin(), end = mProcUpdateStateList.robustEnd();
|
||||
it != end; ++it) {
|
||||
it->afterUpdateState_();
|
||||
if (it->mStateFlags.isZero()) {
|
||||
mProcUpdateStateList.erase(std::addressof(*it));
|
||||
for (auto& proc : mProcUpdateStateList.robustRange()) {
|
||||
proc.afterUpdateState_();
|
||||
if (proc.mStateFlags.isZero()) {
|
||||
mProcUpdateStateList.erase(&proc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -644,9 +644,9 @@ void ResourceMgrTask::clearUnits_() {
|
|||
if (num_units != 0 && returnFalse())
|
||||
stubbedLogFunction();
|
||||
|
||||
for (auto it = mUnits.robustBegin(), end = mUnits.robustEnd(); it != end; ++it) {
|
||||
ResourceUnit* unit = &*it;
|
||||
if (it->mTask3.canSubmitRequest()) {
|
||||
for (auto& unit_ref : mUnits.robustRange()) {
|
||||
ResourceUnit* unit = &unit_ref;
|
||||
if (unit->mTask3.canSubmitRequest()) {
|
||||
mUnits.erase(unit);
|
||||
requestClearCache(&unit);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,8 +73,8 @@ void OverlayArena::clearUnits() {
|
|||
|
||||
res::stubbedLogFunction();
|
||||
auto lock = sead::makeScopedLock(mCS);
|
||||
for (auto it = mUnits.robustBegin(), end = mUnits.robustEnd(); it != end; ++it) {
|
||||
res::ResourceUnit* unit = std::addressof(*it);
|
||||
for (auto& unit_ref : mUnits.robustRange()) {
|
||||
res::ResourceUnit* unit = &unit_ref;
|
||||
res::stubbedLogFunction();
|
||||
res::ResourceMgrTask::instance()->deregisterUnit(unit);
|
||||
res::ResourceMgrTask::instance()->requestClearCacheForSync(&unit, true, false);
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ void TaskQueueBase::clear() {
|
|||
lock();
|
||||
|
||||
// Clear all tasks.
|
||||
for (auto it = mActiveTasks.robustBegin(), end = mActiveTasks.robustEnd(); it != end; ++it) {
|
||||
mActiveTasks.erase(std::addressof(*it));
|
||||
it->onRemove();
|
||||
for (auto& task : mActiveTasks.robustRange()) {
|
||||
mActiveTasks.erase(&task);
|
||||
task.onRemove();
|
||||
}
|
||||
mActiveTasks.clear();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue