aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-18 15:24:16 +0000
committerMelanie Thielker2008-09-18 15:24:16 +0000
commit23c217dd7b7fe53e5640854183c53da8dd0b25b1 (patch)
treebd316d982b7e0779b768de8f57409b48abd69eb6
parentMantis #2213 (diff)
downloadopensim-SC-23c217dd7b7fe53e5640854183c53da8dd0b25b1.zip
opensim-SC-23c217dd7b7fe53e5640854183c53da8dd0b25b1.tar.gz
opensim-SC-23c217dd7b7fe53e5640854183c53da8dd0b25b1.tar.bz2
opensim-SC-23c217dd7b7fe53e5640854183c53da8dd0b25b1.tar.xz
Kan-Ed fix series.
Correct a condition where a prim is linked before it has been persisted for the first time and is then persisted through it's former SOG with a bad offset position.
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs5
2 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 5670492..b0b402c 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -1519,6 +1519,12 @@ namespace OpenSim.Region.Environment.Scenes
1519 if (m_isDeleted) 1519 if (m_isDeleted)
1520 return; 1520 return;
1521 1521
1522 // This is what happens when an orphanced link set child prim's
1523 // group was queued when it was linked
1524 //
1525 if (m_rootPart == null)
1526 return;
1527
1522 lock (m_parts) 1528 lock (m_parts)
1523 { 1529 {
1524 //if (m_rootPart.m_IsAttachment) 1530 //if (m_rootPart.m_IsAttachment)
@@ -1815,6 +1821,8 @@ namespace OpenSim.Region.Environment.Scenes
1815 } 1821 }
1816 1822
1817 m_scene.UnlinkSceneObject(objectGroup.UUID, true); 1823 m_scene.UnlinkSceneObject(objectGroup.UUID, true);
1824 objectGroup.Children.Clear();
1825 objectGroup.RootPart = null;
1818 1826
1819 // TODO Deleting the original group object may cause problems later on if they have already 1827 // TODO Deleting the original group object may cause problems later on if they have already
1820 // made it into the update queue. However, sending out updates for those parts is now 1828 // made it into the update queue. However, sending out updates for those parts is now
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index b4369df..3295a96 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2812,10 +2812,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2812 parentPrim = targetPart.ParentGroup; 2812 parentPrim = targetPart.ParentGroup;
2813 childPrim = m_host.ParentGroup; 2813 childPrim = m_host.ParentGroup;
2814 } 2814 }
2815 byte uf = childPrim.RootPart.UpdateFlag; 2815// byte uf = childPrim.RootPart.UpdateFlag;
2816 childPrim.RootPart.UpdateFlag = 0; 2816 childPrim.RootPart.UpdateFlag = 0;
2817 parentPrim.LinkToGroup(childPrim); 2817 parentPrim.LinkToGroup(childPrim);
2818 childPrim.RootPart.UpdateFlag = uf; 2818// if(uf != (Byte)0)
2819// parent.RootPart.UpdateFlag = uf;
2819 } 2820 }
2820 parentPrim.TriggerScriptChangedEvent(Changed.LINK); 2821 parentPrim.TriggerScriptChangedEvent(Changed.LINK);
2821 parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected); 2822 parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected);