rearrange SceneGraph.AddSceneObject() to return earlier if an object with that uuid is already in the scene
this means that we don't perform pointless worksoprefactor
parent
4b518e0288
commit
5287c5f7fb
|
@ -278,7 +278,19 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (sceneObject == null || sceneObject.RootPart == null || sceneObject.RootPart.UUID == UUID.Zero)
|
if (sceneObject == null || sceneObject.RootPart == null || sceneObject.RootPart.UUID == UUID.Zero)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool newlyAdded = false;
|
lock (sceneObject)
|
||||||
|
{
|
||||||
|
if (Entities.ContainsKey(sceneObject.UUID))
|
||||||
|
{
|
||||||
|
// m_log.WarnFormat(
|
||||||
|
// "[SCENE GRAPH]: Scene object {0} {1} was already in region {2} on add request",
|
||||||
|
// sceneObject.Name, sceneObject.UUID, m_parentScene.RegionInfo.RegionName);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// m_log.DebugFormat(
|
||||||
|
// "[SCENE GRAPH]: Adding object {0} {1} to region {2}",
|
||||||
|
// sceneObject.Name, sceneObject.UUID, m_parentScene.RegionInfo.RegionName);
|
||||||
|
|
||||||
if (m_parentScene.m_clampPrimSize)
|
if (m_parentScene.m_clampPrimSize)
|
||||||
{
|
{
|
||||||
|
@ -302,15 +314,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (sendClientUpdates)
|
if (sendClientUpdates)
|
||||||
sceneObject.ScheduleGroupForFullUpdate();
|
sceneObject.ScheduleGroupForFullUpdate();
|
||||||
|
|
||||||
lock (sceneObject)
|
|
||||||
{
|
|
||||||
if (!Entities.ContainsKey(sceneObject.UUID))
|
|
||||||
{
|
|
||||||
// m_log.DebugFormat(
|
|
||||||
// "[SCENE GRAPH]: Adding object {0} {1} to region {2}",
|
|
||||||
// sceneObject.Name, sceneObject.UUID, m_parentScene.RegionInfo.RegionName);
|
|
||||||
|
|
||||||
newlyAdded = true;
|
|
||||||
Entities.Add(sceneObject);
|
Entities.Add(sceneObject);
|
||||||
m_numPrim += sceneObject.Children.Count;
|
m_numPrim += sceneObject.Children.Count;
|
||||||
|
|
||||||
|
@ -331,15 +334,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// m_log.WarnFormat(
|
|
||||||
// "[SCENE GRAPH]: Scene object {0} {1} was already in region {2} on add request",
|
|
||||||
// sceneObject.Name, sceneObject.UUID, m_parentScene.RegionInfo.RegionName);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
return newlyAdded;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue