aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-03-09 02:38:11 +0000
committerJustin Clark-Casey (justincc)2012-03-09 02:38:11 +0000
commit94e58ff6b9368975925cea4697077a8e59162bc0 (patch)
tree1798f25a23316e71182aca5634fcd5eebb4133bf /OpenSim/Region/Framework/Scenes/SceneGraph.cs
parentrefactor: cleanup SP.HandleAgentSit so that everything is done within one if ... (diff)
downloadopensim-SC-94e58ff6b9368975925cea4697077a8e59162bc0.zip
opensim-SC-94e58ff6b9368975925cea4697077a8e59162bc0.tar.gz
opensim-SC-94e58ff6b9368975925cea4697077a8e59162bc0.tar.bz2
opensim-SC-94e58ff6b9368975925cea4697077a8e59162bc0.tar.xz
Use SP.ParentPart instead of ParentID in places where it's more efficient (saving extra null checks, etc.)
However, it looks like we should retain SP.ParentID since it's much easier to use that in places where another thread could change ParentPart to null. Otherwise one has to clumsily put ParentPart in a reference, etc. to avoid a race.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs24
1 files changed, 5 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 66fb493..dd0ca43 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -215,27 +215,13 @@ namespace OpenSim.Region.Framework.Scenes
215 if (sp.IsChildAgent) 215 if (sp.IsChildAgent)
216 continue; 216 continue;
217 217
218 if (sp.ParentID != 0) 218 SceneObjectPart sitPart = sp.ParentPart;
219 { 219 if (sitPart != null)
220 // sitting avatar 220 coarseLocations.Add(sitPart.AbsolutePosition + sp.OffsetPosition);
221 SceneObjectPart sop = m_parentScene.GetSceneObjectPart(sp.ParentID);
222 if (sop != null)
223 {
224 coarseLocations.Add(sop.AbsolutePosition + sp.OffsetPosition);
225 avatarUUIDs.Add(sp.UUID);
226 }
227 else
228 {
229 // we can't find the parent.. ! arg!
230 coarseLocations.Add(sp.AbsolutePosition);
231 avatarUUIDs.Add(sp.UUID);
232 }
233 }
234 else 221 else
235 {
236 coarseLocations.Add(sp.AbsolutePosition); 222 coarseLocations.Add(sp.AbsolutePosition);
237 avatarUUIDs.Add(sp.UUID); 223
238 } 224 avatarUUIDs.Add(sp.UUID);
239 } 225 }
240 } 226 }
241 227