aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie Thielker2008-10-20 22:14:24 +0000
committerMelanie Thielker2008-10-20 22:14:24 +0000
commit81e220af8d611f401bf128bfdc1bd3d270c14f15 (patch)
tree05fdfed54432e377af51a00911dce5fd3da1f987 /OpenSim
parentFrom: Alan Webb (alan_webb@us.ibm.com) (diff)
downloadopensim-SC-81e220af8d611f401bf128bfdc1bd3d270c14f15.zip
opensim-SC-81e220af8d611f401bf128bfdc1bd3d270c14f15.tar.gz
opensim-SC-81e220af8d611f401bf128bfdc1bd3d270c14f15.tar.bz2
opensim-SC-81e220af8d611f401bf128bfdc1bd3d270c14f15.tar.xz
Mantis #2439
MemberwiseClone() also clones the "already backed up" flag, preventing prims created by drag-copying from being persisted. If such a prim is made the root prims of a link set, the entire set will not be persisted. Fixed now.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs4
1 files changed, 3 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 7f1ecae..dd7628d 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -1009,7 +1009,7 @@ namespace OpenSim.Region.Environment.Scenes
1009 // that they don't happen, otherwise the deleted objects will reappear 1009 // that they don't happen, otherwise the deleted objects will reappear
1010 m_isDeleted = true; 1010 m_isDeleted = true;
1011 1011
1012// DetachFromBackup(); 1012 DetachFromBackup();
1013 1013
1014 foreach (SceneObjectPart part in m_parts.Values) 1014 foreach (SceneObjectPart part in m_parts.Values)
1015 { 1015 {
@@ -1278,6 +1278,7 @@ namespace OpenSim.Region.Environment.Scenes
1278 public SceneObjectGroup Copy(UUID cAgentID, UUID cGroupID, bool userExposed) 1278 public SceneObjectGroup Copy(UUID cAgentID, UUID cGroupID, bool userExposed)
1279 { 1279 {
1280 SceneObjectGroup dupe = (SceneObjectGroup) MemberwiseClone(); 1280 SceneObjectGroup dupe = (SceneObjectGroup) MemberwiseClone();
1281 dupe.m_isBackedUp = false;
1281 dupe.m_parts = new Dictionary<UUID, SceneObjectPart>(); 1282 dupe.m_parts = new Dictionary<UUID, SceneObjectPart>();
1282 dupe.m_parts.Clear(); 1283 dupe.m_parts.Clear();
1283 //dupe.OwnerID = AgentID; 1284 //dupe.OwnerID = AgentID;
@@ -1860,6 +1861,7 @@ namespace OpenSim.Region.Environment.Scenes
1860 // The traffic caused is always going to be pretty minor, so it's not high priority 1861 // The traffic caused is always going to be pretty minor, so it's not high priority
1861 //objectGroup.DeleteGroup(); 1862 //objectGroup.DeleteGroup();
1862 1863
1864 AttachToBackup();
1863 HasGroupChanged = true; 1865 HasGroupChanged = true;
1864 ScheduleGroupForFullUpdate(); 1866 ScheduleGroupForFullUpdate();
1865 } 1867 }