aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorSean Dague2008-11-20 00:13:15 +0000
committerSean Dague2008-11-20 00:13:15 +0000
commite6f92044caa8f66fd0a04019b9edcd30eb389920 (patch)
treeee7c5ca8013feeaf286e2fb33d6a60a567405ab1 /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
parentMantis#2658. Thank you kindly, StrawberryFride for a patch that: (diff)
downloadopensim-SC_OLD-e6f92044caa8f66fd0a04019b9edcd30eb389920.zip
opensim-SC_OLD-e6f92044caa8f66fd0a04019b9edcd30eb389920.tar.gz
opensim-SC_OLD-e6f92044caa8f66fd0a04019b9edcd30eb389920.tar.bz2
opensim-SC_OLD-e6f92044caa8f66fd0a04019b9edcd30eb389920.tar.xz
From: Christopher Yeoh <cyeoh@au1.ibm.com>
Attached is a patch which fixes mantis bug 2645 where scripts in child prims freeze after being unlinked from the root prim. This got introduced some time after the 0.6 freeze. Have checked test suites pass even after nant clean ;-) http://opensimulator.org/mantis/bug_update_page.php?bug_id=2645 Also removes a redundant ResetIDs call Regards, Chris
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 2d62d66..82ab4eb 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -591,17 +591,19 @@ namespace OpenSim.Region.Environment.Scenes
591 { 591 {
592 m_scene = scene; 592 m_scene = scene;
593 RegionHandle = m_scene.RegionInfo.RegionHandle; 593 RegionHandle = m_scene.RegionInfo.RegionHandle;
594 594
595 m_rootPart.ParentID = 0; 595 m_rootPart.ParentID = 0;
596 m_rootPart.LocalId = m_scene.AllocateLocalId(); 596 if (m_rootPart.LocalId==0)
597 m_rootPart.LocalId = m_scene.AllocateLocalId();
597 598
599
598 // No need to lock here since the object isn't yet in a scene 600 // No need to lock here since the object isn't yet in a scene
599 foreach (SceneObjectPart part in m_parts.Values) 601 foreach (SceneObjectPart part in m_parts.Values)
600 { 602 {
601 if (Object.ReferenceEquals(part, m_rootPart)) 603 if (Object.ReferenceEquals(part, m_rootPart))
602 continue; 604 continue;
603 605 if (part.LocalId==0)
604 part.LocalId = m_scene.AllocateLocalId(); 606 part.LocalId = m_scene.AllocateLocalId();
605 part.ParentID = m_rootPart.LocalId; 607 part.ParentID = m_rootPart.LocalId;
606 //m_log.DebugFormat("[SCENE]: Given local id {0} to part {1}, linknum {2}, parent {3} {4}", part.LocalId, part.UUID, part.LinkNum, part.ParentID, part.ParentUUID); 608 //m_log.DebugFormat("[SCENE]: Given local id {0} to part {1}, linknum {2}, parent {3} {4}", part.LocalId, part.UUID, part.LinkNum, part.ParentID, part.ParentUUID);
607 } 609 }