Pārlūkot izejas kodu

Swapping step listener with last step listener so we don't remove a listener from the middle of the array (#476)

Jorrit Rouwe 2 gadi atpakaļ
vecāks
revīzija
ac0b9bcb47
1 mainītis faili ar 2 papildinājumiem un 1 dzēšanām
  1. 2 1
      Jolt/Physics/PhysicsSystem.cpp

+ 2 - 1
Jolt/Physics/PhysicsSystem.cpp

@@ -111,7 +111,8 @@ void PhysicsSystem::RemoveStepListener(PhysicsStepListener *inListener)
 
 	StepListeners::iterator i = find(mStepListeners.begin(), mStepListeners.end(), inListener);
 	JPH_ASSERT(i != mStepListeners.end());
-	mStepListeners.erase(i);
+	*i = mStepListeners.back();
+	mStepListeners.pop_back();
 }
 
 void PhysicsSystem::Update(float inDeltaTime, int inCollisionSteps, int inIntegrationSubSteps, TempAllocator *inTempAllocator, JobSystem *inJobSystem)