diff options
author | Justin Clark-Casey (justincc) | 2012-04-03 05:50:13 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-03 05:51:38 +0100 |
commit | 746829967315cc82560a855a4772e45888bf8fbe (patch) | |
tree | 1e21d5c27101cb505a4ac4bcdf6e356f2e409d52 /OpenSim/Region/Framework/Scenes/SceneGraph.cs | |
parent | Implement bulk inventory update over CAPS (not recursive by design, (diff) | |
download | opensim-SC_OLD-746829967315cc82560a855a4772e45888bf8fbe.zip opensim-SC_OLD-746829967315cc82560a855a4772e45888bf8fbe.tar.gz opensim-SC_OLD-746829967315cc82560a855a4772e45888bf8fbe.tar.bz2 opensim-SC_OLD-746829967315cc82560a855a4772e45888bf8fbe.tar.xz |
Eliminate race condition where many callers would check SOP.PhysicsActor != null then assume it was still not null in later code.
Another thread could come and turn off physics for a part (null PhysicsActor) at any point.
Had to turn off localCopy on warp3D CoreModules section in prebuild.xml since on current nant this copies all DLLs in bin/ which can be a very large number with compiled DLLs
No obvious reason for doing that copy - nothing else does it.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 8a05772..0098add 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -306,7 +306,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
306 | if (rot != null) | 306 | if (rot != null) |
307 | sceneObject.UpdateGroupRotationR((Quaternion)rot); | 307 | sceneObject.UpdateGroupRotationR((Quaternion)rot); |
308 | 308 | ||
309 | if (sceneObject.RootPart.PhysActor != null && sceneObject.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero) | 309 | PhysicsActor pa = sceneObject.RootPart.PhysActor; |
310 | if (pa != null && pa.IsPhysical && vel != Vector3.Zero) | ||
310 | { | 311 | { |
311 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); | 312 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); |
312 | sceneObject.Velocity = vel; | 313 | sceneObject.Velocity = vel; |