diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp index c348ea53..ccb5e04a 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp @@ -258,10 +258,10 @@ void plAGAnimInstance::DetachChannels() do { plAGChannel *channel = (*i).second; channelMod->DetachChannel(channel); - } while (i != fManualDetachChannels.end() && (*++i).first == channelName); + } while (++i != fManualDetachChannels.end() && i->first == channelName); } else { do { - } while (i != fManualDetachChannels.end() && (*++i).first == channelName); + } while (++i != fManualDetachChannels.end() && i->first == channelName); } } diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp index c510f33b..e838bf20 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp @@ -244,9 +244,8 @@ plAGChannel * plAGModifier::MergeChannel(plAGApplicator *app, hsBool plAGModifier::DetachChannel(plAGChannel * channel) { plAppTable::iterator i = fApps.begin(); - hsBool done = false; - for( ; i != fApps.end(); i++) + while( i != fApps.end() ) { plAGApplicator *app = *i; plAGChannel *existingChannel = app->GetChannel(); @@ -259,17 +258,16 @@ hsBool plAGModifier::DetachChannel(plAGChannel * channel) app->SetChannel(replacementChannel); if( ! replacementChannel && app->AutoDelete()) { - plAppTable::iterator old = i; - i--; - fApps.erase(old); + // Don't need to adjust the iterator since we're about to exit the loop + fApps.erase(i); delete app; } - done = true; - break; + return true; } } + ++i; } - return done; + return false; } // READ diff --git a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp index 1c8e623e..a2ea1df0 100644 --- a/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp +++ b/MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp @@ -640,7 +640,7 @@ void plObjectInVolumeDetector::IHandleEval(plEvalMsg* pEval) { plgDispatch::Dispatch()->UnRegisterForExactType(plEvalMsg::Index(), GetKey()); fWaitingForEval = false; - for(bookKeepingList::iterator it= (--fCollisionList.end());it!=(--fCollisionList.begin()); it--) + for(bookKeepingList::reverse_iterator it= fCollisionList.rbegin();it!=fCollisionList.rend(); it++) { bool alreadyInside; ResidentSet::iterator HitIt; @@ -1168,4 +1168,4 @@ hsBool plRidingAnimatedPhysicalDetector::MsgReceive(plMessage *msg) return true; } return plSimpleRegionSensor::MsgReceive(msg); -} \ No newline at end of file +}