Only create a new list to check if objects have reached targets if there actually are any targets.

integration
Justin Clark-Casey (justincc) 2012-10-30 01:48:05 +00:00
parent ff6c69000e
commit 984faf24df
1 changed files with 9 additions and 5 deletions

View File

@ -1692,16 +1692,20 @@ namespace OpenSim.Region.Framework.Scenes
private void CheckAtTargets() private void CheckAtTargets()
{ {
List<SceneObjectGroup> objs = new List<SceneObjectGroup>(); List<SceneObjectGroup> objs = null;
lock (m_groupsWithTargets) lock (m_groupsWithTargets)
{ {
foreach (SceneObjectGroup grp in m_groupsWithTargets.Values) if (m_groupsWithTargets.Count != 0)
objs.Add(grp); objs = new List<SceneObjectGroup>(m_groupsWithTargets.Values);
} }
if (objs != null)
{
foreach (SceneObjectGroup entry in objs) foreach (SceneObjectGroup entry in objs)
entry.checkAtTargets(); entry.checkAtTargets();
} }
}
/// <summary> /// <summary>
/// Send out simstats data to all clients /// Send out simstats data to all clients