Преглед изворни кода

Fixed memleak by running Init multiple times (ApplyAttributes/Editor thing)

Sergey Lapin пре 8 година
родитељ
комит
2fd97bd798
1 измењених фајлова са 10 додато и 1 уклоњено
  1. 10 1
      Source/Urho3D/Physics/RaycastVehicle.cpp

+ 10 - 1
Source/Urho3D/Physics/RaycastVehicle.cpp

@@ -56,7 +56,7 @@ public:
             if (physWorld_) {
                 btDynamicsWorld *pbtDynWorld = (btDynamicsWorld*) physWorld_->GetWorld();
                 pbtDynWorld->removeAction(vehicle_);
-	    }
+            }
             delete vehicle_;
         }
         vehicle_ = 0;
@@ -74,6 +74,15 @@ public:
         int forwardIndex = 2;
         PhysicsWorld *pPhysWorld = scene->GetComponent<PhysicsWorld>();
         btDynamicsWorld *pbtDynWorld = (btDynamicsWorld*) pPhysWorld->GetWorld();
+	if (!pbtDynWorld)
+		return;
+        if (vehicleRayCaster_)
+                delete vehicleRayCaster_;
+        if (vehicle_)
+        {
+		pbtDynWorld->removeAction(vehicle_);
+		delete vehicle_;
+        }
 
         vehicleRayCaster_ = new btDefaultVehicleRaycaster(pbtDynWorld);
         btRigidBody *bthullBody = body->GetBody();