* A few additional null checks in the Physics Scene and PhysicsActor so we don't try to enumerate dead null ODECharacter objects when things get *really* slow.
parent
89665faeaf
commit
640ad259d4
|
@ -139,10 +139,9 @@ namespace OpenSim.Region.Physics.Manager
|
||||||
|
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
lock (handler)
|
|
||||||
{
|
|
||||||
handler();
|
handler();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,10 +153,7 @@ namespace OpenSim.Region.Physics.Manager
|
||||||
OutOfBounds handler = OnOutOfBounds;
|
OutOfBounds handler = OnOutOfBounds;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
lock (handler)
|
|
||||||
{
|
|
||||||
handler(pos);
|
handler(pos);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,10 +163,7 @@ namespace OpenSim.Region.Physics.Manager
|
||||||
|
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
lock (handler)
|
|
||||||
{
|
|
||||||
handler(e);
|
handler(e);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1272,7 +1272,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
{
|
{
|
||||||
foreach (OdeCharacter actor in _characters)
|
foreach (OdeCharacter actor in _characters)
|
||||||
{
|
{
|
||||||
actor.Move(timeStep);
|
if (actor != null)
|
||||||
|
actor.Move(timeStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
collision_optimized(timeStep);
|
collision_optimized(timeStep);
|
||||||
|
@ -1300,7 +1301,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
|
|
||||||
foreach (OdeCharacter actor in _characters)
|
foreach (OdeCharacter actor in _characters)
|
||||||
{
|
{
|
||||||
actor.UpdatePositionAndVelocity();
|
if (actor != null)
|
||||||
|
actor.UpdatePositionAndVelocity();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ode.lockquery())
|
if (!ode.lockquery())
|
||||||
|
|
Loading…
Reference in New Issue