diff options
author | John Hurliman | 2010-09-16 17:30:46 -0700 |
---|---|---|
committer | John Hurliman | 2010-09-16 17:30:46 -0700 |
commit | 860b2a502f797e5822c6705d4639f370f3ac5861 (patch) | |
tree | 5a74ddbd626142e27f6c3439ea267b8ea348ce9c /OpenSim/Region/Framework/Scenes/Scene.cs | |
parent | Add the modules include line back that i dropped by mistake (diff) | |
download | opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.zip opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.gz opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.bz2 opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.xz |
Changed SceneObjectGroup to store parts with the fast and thread-safe MapAndArray collection
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 8a90bc8..fe0ab5b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1785,7 +1785,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1785 | { | 1785 | { |
1786 | m_log.ErrorFormat( | 1786 | m_log.ErrorFormat( |
1787 | "[SCENE]: Found a SceneObjectGroup with m_rootPart == null and {0} children", | 1787 | "[SCENE]: Found a SceneObjectGroup with m_rootPart == null and {0} children", |
1788 | group.Children == null ? 0 : group.PrimCount); | 1788 | group.Parts == null ? 0 : group.PrimCount); |
1789 | } | 1789 | } |
1790 | 1790 | ||
1791 | AddRestoredSceneObject(group, true, true); | 1791 | AddRestoredSceneObject(group, true, true); |
@@ -2091,9 +2091,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2091 | group.RemoveScriptInstances(true); | 2091 | group.RemoveScriptInstances(true); |
2092 | } | 2092 | } |
2093 | 2093 | ||
2094 | List<SceneObjectPart> partList = null; | 2094 | SceneObjectPart[] partList = group.Parts; |
2095 | lock (group.Children) | ||
2096 | partList = new List<SceneObjectPart>(group.Children.Values); | ||
2097 | 2095 | ||
2098 | foreach (SceneObjectPart part in partList) | 2096 | foreach (SceneObjectPart part in partList) |
2099 | { | 2097 | { |
@@ -2465,11 +2463,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2465 | 2463 | ||
2466 | // Force allocation of new LocalId | 2464 | // Force allocation of new LocalId |
2467 | // | 2465 | // |
2468 | lock (sceneObject.Children) | 2466 | SceneObjectPart[] parts = sceneObject.Parts; |
2469 | { | 2467 | for (int i = 0; i < parts.Length; i++) |
2470 | foreach (SceneObjectPart p in sceneObject.Children.Values) | 2468 | parts[i].LocalId = 0; |
2471 | p.LocalId = 0; | ||
2472 | } | ||
2473 | 2469 | ||
2474 | if (sceneObject.IsAttachmentCheckFull()) // Attachment | 2470 | if (sceneObject.IsAttachmentCheckFull()) // Attachment |
2475 | { | 2471 | { |