aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs
diff options
context:
space:
mode:
authorUbitUmarov2014-09-22 13:59:23 +0100
committerUbitUmarov2014-09-22 13:59:23 +0100
commitbcaf202e34ab058a049c921e1279793d61eef5ea (patch)
treeaeac96a4758f1247d1602d3ae7db981128439ba5 /OpenSim/Region/Framework/Scenes/SceneGraph.cs
parent remove redundant lock (diff)
downloadopensim-SC_OLD-bcaf202e34ab058a049c921e1279793d61eef5ea.zip
opensim-SC_OLD-bcaf202e34ab058a049c921e1279793d61eef5ea.tar.gz
opensim-SC_OLD-bcaf202e34ab058a049c921e1279793d61eef5ea.tar.bz2
opensim-SC_OLD-bcaf202e34ab058a049c921e1279793d61eef5ea.tar.xz
update scenegraph group find by part information in sog link, so script link functions do update that also.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneGraph.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 973891b..bc91961 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -462,6 +462,20 @@ namespace OpenSim.Region.Framework.Scenes
462 return true; 462 return true;
463 } 463 }
464 464
465 public void updateScenePartGroup(SceneObjectPart part, SceneObjectGroup grp)
466 {
467 // no tests, caller has responsability...
468 lock (SceneObjectGroupsByFullPartID)
469 {
470 SceneObjectGroupsByFullPartID[part.UUID] = grp;
471 }
472
473 lock (SceneObjectGroupsByLocalPartID)
474 {
475 SceneObjectGroupsByLocalPartID[part.LocalId] = grp;
476 }
477 }
478
465 /// <summary> 479 /// <summary>
466 /// Delete an object from the scene 480 /// Delete an object from the scene
467 /// </summary> 481 /// </summary>
@@ -1804,7 +1818,7 @@ namespace OpenSim.Region.Framework.Scenes
1804 List<SceneObjectGroup> childGroups = new List<SceneObjectGroup>(); 1818 List<SceneObjectGroup> childGroups = new List<SceneObjectGroup>();
1805 1819
1806 // We do this in reverse to get the link order of the prims correct 1820 // We do this in reverse to get the link order of the prims correct
1807 for (int i = 0 ; i < children.Count ; i++) 1821 for (int i = 0; i < children.Count; i++)
1808 { 1822 {
1809 SceneObjectGroup child = children[i].ParentGroup; 1823 SceneObjectGroup child = children[i].ParentGroup;
1810 1824
@@ -1815,7 +1829,7 @@ namespace OpenSim.Region.Framework.Scenes
1815 // Make sure no child prim is set for sale 1829 // Make sure no child prim is set for sale
1816 // So that, on delink, no prims are unwittingly 1830 // So that, on delink, no prims are unwittingly
1817 // left for sale and sold off 1831 // left for sale and sold off
1818 1832
1819 if (child != null) 1833 if (child != null)
1820 { 1834 {
1821 child.RootPart.ObjectSaleType = 0; 1835 child.RootPart.ObjectSaleType = 0;
@@ -1850,12 +1864,13 @@ namespace OpenSim.Region.Framework.Scenes
1850 } 1864 }
1851 finally 1865 finally
1852 { 1866 {
1867/*
1853 lock (SceneObjectGroupsByLocalPartID) 1868 lock (SceneObjectGroupsByLocalPartID)
1854 { 1869 {
1855 foreach (SceneObjectPart part in parentGroup.Parts) 1870 foreach (SceneObjectPart part in parentGroup.Parts)
1856 SceneObjectGroupsByLocalPartID[part.LocalId] = parentGroup; 1871 SceneObjectGroupsByLocalPartID[part.LocalId] = parentGroup;
1857 } 1872 }
1858 1873*/
1859 parentGroup.AdjustChildPrimPermissions(); 1874 parentGroup.AdjustChildPrimPermissions();
1860 parentGroup.HasGroupChanged = true; 1875 parentGroup.HasGroupChanged = true;
1861 parentGroup.ProcessBackup(m_parentScene.SimulationDataService, true); 1876 parentGroup.ProcessBackup(m_parentScene.SimulationDataService, true);