aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 101bac3..8f4c332 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -2676,7 +2676,7 @@ namespace OpenSim.Region.Environment.Scenes
2676 /// </summary> 2676 /// </summary>
2677 /// <param name="group"></param> 2677 /// <param name="group"></param>
2678 public void DeleteSceneObjectGroup(SceneObjectGroup group) 2678 public void DeleteSceneObjectGroup(SceneObjectGroup group)
2679 { 2679 {
2680 SceneObjectPart rootPart = (group).GetChildPart(group.UUID); 2680 SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
2681 if (rootPart.PhysActor != null) 2681 if (rootPart.PhysActor != null)
2682 { 2682 {
@@ -2693,6 +2693,14 @@ namespace OpenSim.Region.Environment.Scenes
2693 m_innerScene.RemoveAPrimCount(); 2693 m_innerScene.RemoveAPrimCount();
2694 } 2694 }
2695 group.DeleteParts(); 2695 group.DeleteParts();
2696
2697 // In case anybody else retains a reference to this group, signal deletion by changing the name
2698 // to null. We can't zero out the UUID because this is taken from the root part, which has already
2699 // been removed.
2700 // FIXME: This is a really poor temporary solution, since it still leaves plenty of scope for race
2701 // conditions where a user deletes an entity while it is being stored. Really, the update
2702 // code needs a redesign.
2703 group.Name = null;
2696 } 2704 }
2697 2705
2698 /// <summary> 2706 /// <summary>