From 24aedf52c6b903720f588694880e9613b115cc0c Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Fri, 14 Mar 2008 15:28:34 +0000 Subject: * Added null root part guard * Normalized some UUID handling * Compacted a few Contains/Add into Set --- OpenSim/Region/Environment/Scenes/EntityBase.cs | 2 +- OpenSim/Region/Environment/Scenes/InnerScene.cs | 27 ++++++---------------- .../Region/Environment/Scenes/SceneObjectGroup.cs | 10 +++++++- .../Region/Environment/Scenes/SceneObjectPart.cs | 1 + 4 files changed, 18 insertions(+), 22 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Environment/Scenes/EntityBase.cs b/OpenSim/Region/Environment/Scenes/EntityBase.cs index 2a8c1e9..670ca13 100644 --- a/OpenSim/Region/Environment/Scenes/EntityBase.cs +++ b/OpenSim/Region/Environment/Scenes/EntityBase.cs @@ -46,7 +46,7 @@ namespace OpenSim.Region.Environment.Scenes get { return m_scene; } } - public LLUUID m_uuid; + protected LLUUID m_uuid; public virtual LLUUID UUID { diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 053fc85..c75ca81 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs @@ -489,40 +489,27 @@ namespace OpenSim.Region.Environment.Scenes if (child) { m_numChildAgents++; - m_log.Info("[SCENE]"+ m_regInfo.RegionName + ": Creating new child agent."); + m_log.Info("[SCENE]" + m_regInfo.RegionName + ": Creating new child agent."); } else { m_numRootAgents++; - m_log.Info("[SCENE] "+ m_regInfo.RegionName + ": Creating new root agent."); - m_log.Info("[SCENE] "+ m_regInfo.RegionName + ": Adding Physical agent."); + m_log.Info("[SCENE] " + m_regInfo.RegionName + ": Creating new root agent."); + m_log.Info("[SCENE] " + m_regInfo.RegionName + ": Adding Physical agent."); presence.AddToPhysicalScene(); } lock (Entities) { - if (!Entities.ContainsKey(presence.m_uuid)) - { - Entities.Add(presence.m_uuid, presence); - } - else - { - Entities[presence.m_uuid] = presence; - } + Entities[presence.UUID] = presence; } + lock (ScenePresences) { - if (ScenePresences.ContainsKey(presence.m_uuid)) - { - ScenePresences[presence.m_uuid] = presence; - } - else - { - ScenePresences.Add(presence.m_uuid, presence); - } + ScenePresences[presence.UUID] = presence; } - } + } public void SwapRootChildAgent(bool direction_RC_CR_T_F) { diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 47c4567..e295f87 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -123,7 +123,15 @@ namespace OpenSim.Region.Environment.Scenes public override LLVector3 AbsolutePosition { - get { return m_rootPart.GroupPosition; } + get + { + if( m_rootPart == null ) + { + throw new NullReferenceException(string.Format("Object {0} has no root part.", m_uuid)); + } + + return m_rootPart.GroupPosition; + } set { LLVector3 val = value; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 5b3ea0f..060003e 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -270,6 +270,7 @@ namespace OpenSim.Region.Environment.Scenes m_groupPosition.Y = PhysActor.Position.Y; m_groupPosition.Z = PhysActor.Position.Z; } + return m_groupPosition; } set -- cgit v1.1