aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs16
2 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index a600b86..0587846 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -1820,6 +1820,8 @@ namespace OpenSim.Region.Framework.Scenes
1820 { 1820 {
1821 parentGroup.LinkToGroup(child); 1821 parentGroup.LinkToGroup(child);
1822 1822
1823 child.DetachFromBackup();
1824
1823 // this is here so physics gets updated! 1825 // this is here so physics gets updated!
1824 // Don't remove! Bad juju! Stay away! or fix physics! 1826 // Don't remove! Bad juju! Stay away! or fix physics!
1825 child.AbsolutePosition = child.AbsolutePosition; 1827 child.AbsolutePosition = child.AbsolutePosition;
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 1e0f01f..2a01fc4 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -596,7 +596,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
596 if (!m_Enabled) 596 if (!m_Enabled)
597 return; 597 return;
598 lockScriptsForRead(true); 598 lockScriptsForRead(true);
599 foreach (IScriptInstance instance in m_Scripts.Values) 599
600 List<IScriptInstance> instancesToDel = new List<IScriptInstance>(m_Scripts.Values);
601
602// foreach (IScriptInstance instance in m_Scripts.Values)
603 foreach (IScriptInstance instance in instancesToDel)
600 { 604 {
601 // Force a final state save 605 // Force a final state save
602 // 606 //
@@ -619,7 +623,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
619 // Must be done explicitly because they have infinite 623 // Must be done explicitly because they have infinite
620 // lifetime 624 // lifetime
621 // 625 //
622 if (!m_SimulatorShuttingDown) 626// if (!m_SimulatorShuttingDown)
623 { 627 {
624 m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); 628 m_DomainScripts[instance.AppDomain].Remove(instance.ItemID);
625 if (m_DomainScripts[instance.AppDomain].Count == 0) 629 if (m_DomainScripts[instance.AppDomain].Count == 0)
@@ -629,10 +633,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
629 } 633 }
630 } 634 }
631 635
632 m_Scripts.Clear(); 636// m_Scripts.Clear();
633 m_PrimObjects.Clear(); 637// m_PrimObjects.Clear();
634 m_Assemblies.Clear(); 638// m_Assemblies.Clear();
635 m_DomainScripts.Clear(); 639// m_DomainScripts.Clear();
636 } 640 }
637 lockScriptsForRead(false); 641 lockScriptsForRead(false);
638 lockScriptsForWrite(true); 642 lockScriptsForWrite(true);