aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs15
1 files changed, 13 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index bcb715b..896300f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -171,10 +171,19 @@ namespace OpenSim.Region.Framework.Scenes
171 } 171 }
172 } 172 }
173 m_hasGroupChanged = value; 173 m_hasGroupChanged = value;
174
175// m_log.DebugFormat(
176// "[SCENE OBJECT GROUP]: HasGroupChanged set to {0} for {1} {2}", m_hasGroupChanged, Name, LocalId);
174 } 177 }
175 178
176 get { return m_hasGroupChanged; } 179 get { return m_hasGroupChanged; }
177 } 180 }
181
182 /// <summary>
183 /// Has the group changed due to an unlink operation? We record this in order to optimize deletion, since
184 /// an unlinked group currently has to be persisted to the database before we can perform an unlink operation.
185 /// </summary>
186 public bool HasGroupChangedDueToDelink { get; private set; }
178 187
179 private bool isTimeToPersist() 188 private bool isTimeToPersist()
180 { 189 {
@@ -1622,6 +1631,7 @@ namespace OpenSim.Region.Framework.Scenes
1622 backup_group.RootPart.AngularVelocity = RootPart.AngularVelocity; 1631 backup_group.RootPart.AngularVelocity = RootPart.AngularVelocity;
1623 backup_group.RootPart.ParticleSystem = RootPart.ParticleSystem; 1632 backup_group.RootPart.ParticleSystem = RootPart.ParticleSystem;
1624 HasGroupChanged = false; 1633 HasGroupChanged = false;
1634 HasGroupChangedDueToDelink = false;
1625 1635
1626 m_scene.EventManager.TriggerOnSceneObjectPreSave(backup_group, this); 1636 m_scene.EventManager.TriggerOnSceneObjectPreSave(backup_group, this);
1627 datastore.StoreObject(backup_group, m_scene.RegionInfo.RegionID); 1637 datastore.StoreObject(backup_group, m_scene.RegionInfo.RegionID);
@@ -2540,8 +2550,9 @@ namespace OpenSim.Region.Framework.Scenes
2540 2550
2541 linkPart.Rezzed = RootPart.Rezzed; 2551 linkPart.Rezzed = RootPart.Rezzed;
2542 2552
2543 //HasGroupChanged = true; 2553 // When we delete a group, we currently have to force persist to the database if the object id has changed
2544 //ScheduleGroupForFullUpdate(); 2554 // (since delete works by deleting all rows which have a given object id)
2555 objectGroup.HasGroupChangedDueToDelink = true;
2545 2556
2546 return objectGroup; 2557 return objectGroup;
2547 } 2558 }