diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 90223b1..66c6924 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1997,7 +1997,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1997 | /// <param name="group">Object Id</param> | 1997 | /// <param name="group">Object Id</param> |
1998 | /// <param name="silent">Suppress broadcasting changes to other clients.</param> | 1998 | /// <param name="silent">Suppress broadcasting changes to other clients.</param> |
1999 | public void DeleteSceneObject(SceneObjectGroup group, bool silent) | 1999 | public void DeleteSceneObject(SceneObjectGroup group, bool silent) |
2000 | { | 2000 | { |
2001 | // m_log.DebugFormat("[SCENE]: Deleting scene object {0} {1}", group.Name, group.UUID); | 2001 | // m_log.DebugFormat("[SCENE]: Deleting scene object {0} {1}", group.Name, group.UUID); |
2002 | 2002 | ||
2003 | //SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 2003 | //SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
@@ -2038,7 +2038,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2038 | 2038 | ||
2039 | group.DeleteGroupFromScene(silent); | 2039 | group.DeleteGroupFromScene(silent); |
2040 | 2040 | ||
2041 | // m_log.DebugFormat("[SCENE]: Exit DeleteSceneObject() for {0} {1}", group.Name, group.UUID); | 2041 | // m_log.DebugFormat("[SCENE]: Exit DeleteSceneObject() for {0} {1}", group.Name, group.UUID); |
2042 | } | 2042 | } |
2043 | 2043 | ||
2044 | /// <summary> | 2044 | /// <summary> |
@@ -2057,9 +2057,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2057 | // Force a database update so that the scene object group ID is accurate. It's possible that the | 2057 | // Force a database update so that the scene object group ID is accurate. It's possible that the |
2058 | // group has recently been delinked from another group but that this change has not been persisted | 2058 | // group has recently been delinked from another group but that this change has not been persisted |
2059 | // to the DB. | 2059 | // to the DB. |
2060 | ForceSceneObjectBackup(so); | 2060 | // This is an expensive thing to do so only do it if absolutely necessary. |
2061 | if (so.HasGroupChangedDueToDelink) | ||
2062 | ForceSceneObjectBackup(so); | ||
2063 | |||
2061 | so.DetachFromBackup(); | 2064 | so.DetachFromBackup(); |
2062 | SimulationDataService.RemoveObject(so.UUID, m_regInfo.RegionID); | 2065 | SimulationDataService.RemoveObject(so.UUID, m_regInfo.RegionID); |
2063 | } | 2066 | } |
2064 | 2067 | ||
2065 | // We need to keep track of this state in case this group is still queued for further backup. | 2068 | // We need to keep track of this state in case this group is still queued for further backup. |