diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index a6178e7..0f5e99d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -1752,7 +1752,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1752 | List<SceneObjectGroup> childGroups = new List<SceneObjectGroup>(); | 1752 | List<SceneObjectGroup> childGroups = new List<SceneObjectGroup>(); |
1753 | 1753 | ||
1754 | // We do this in reverse to get the link order of the prims correct | 1754 | // We do this in reverse to get the link order of the prims correct |
1755 | for (int i = children.Count - 1; i >= 0; i--) | 1755 | for (int i = 0 ; i < children.Count ; i++) |
1756 | { | 1756 | { |
1757 | SceneObjectGroup child = children[i].ParentGroup; | 1757 | SceneObjectGroup child = children[i].ParentGroup; |
1758 | 1758 | ||
@@ -1784,6 +1784,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1784 | } | 1784 | } |
1785 | finally | 1785 | finally |
1786 | { | 1786 | { |
1787 | lock (SceneObjectGroupsByLocalPartID) | ||
1788 | { | ||
1789 | foreach (SceneObjectPart part in parentGroup.Parts) | ||
1790 | SceneObjectGroupsByLocalPartID[part.LocalId] = parentGroup; | ||
1791 | } | ||
1792 | |||
1787 | parentGroup.areUpdatesSuspended = false; | 1793 | parentGroup.areUpdatesSuspended = false; |
1788 | parentGroup.HasGroupChanged = true; | 1794 | parentGroup.HasGroupChanged = true; |
1789 | parentGroup.ProcessBackup(m_parentScene.SimulationDataService, true); | 1795 | parentGroup.ProcessBackup(m_parentScene.SimulationDataService, true); |