diff options
author | Sean Dague | 2008-11-20 00:13:15 +0000 |
---|---|---|
committer | Sean Dague | 2008-11-20 00:13:15 +0000 |
commit | e6f92044caa8f66fd0a04019b9edcd30eb389920 (patch) | |
tree | ee7c5ca8013feeaf286e2fb33d6a60a567405ab1 /OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |
parent | Mantis#2658. Thank you kindly, StrawberryFride for a patch that: (diff) | |
download | opensim-SC-e6f92044caa8f66fd0a04019b9edcd30eb389920.zip opensim-SC-e6f92044caa8f66fd0a04019b9edcd30eb389920.tar.gz opensim-SC-e6f92044caa8f66fd0a04019b9edcd30eb389920.tar.bz2 opensim-SC-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 '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 10 |
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 | } |