aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorUbitUmarov2017-05-04 12:08:10 +0100
committerUbitUmarov2017-05-04 12:08:10 +0100
commit34028198882be021c49725c342e8d2d494dc7286 (patch)
treedef2c1dbf006e8a37b1d3c17930338909d13860f /OpenSim/Region/Framework/Scenes
parent move deep effective permissions aggregation to first time use and not on cha... (diff)
downloadopensim-SC_OLD-34028198882be021c49725c342e8d2d494dc7286.zip
opensim-SC_OLD-34028198882be021c49725c342e8d2d494dc7286.tar.gz
opensim-SC_OLD-34028198882be021c49725c342e8d2d494dc7286.tar.bz2
opensim-SC_OLD-34028198882be021c49725c342e8d2d494dc7286.tar.xz
do the same in the cases we are just moving parts around and not changing their caches (ie their taskInventory)
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs10
-rwxr-xr-xOpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs6
5 files changed, 14 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index d55311e..bba7a96 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -338,7 +338,7 @@ namespace OpenSim.Region.Framework.Scenes
338 // Update item with new asset 338 // Update item with new asset
339 item.AssetID = asset.FullID; 339 item.AssetID = asset.FullID;
340 group.UpdateInventoryItem(item); 340 group.UpdateInventoryItem(item);
341 group.AggregatePerms(); 341 group.InvalidateEffectivePerms();
342 342
343 part.SendPropertiesToClient(remoteClient); 343 part.SendPropertiesToClient(remoteClient);
344 344
@@ -1216,7 +1216,7 @@ namespace OpenSim.Region.Framework.Scenes
1216 } 1216 }
1217 1217
1218 group.RemoveInventoryItem(localID, itemID); 1218 group.RemoveInventoryItem(localID, itemID);
1219 group.AggregatePerms(); 1219 group.InvalidateEffectivePerms();
1220 } 1220 }
1221 1221
1222 part.SendPropertiesToClient(remoteClient); 1222 part.SendPropertiesToClient(remoteClient);
@@ -1967,7 +1967,7 @@ namespace OpenSim.Region.Framework.Scenes
1967 part.Inventory.AddInventoryItem(taskItem, false); 1967 part.Inventory.AddInventoryItem(taskItem, false);
1968 part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0); 1968 part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0);
1969 1969
1970 part.ParentGroup.AggregatePerms(); 1970 part.ParentGroup.InvalidateEffectivePerms();
1971 1971
1972 // tell anyone managing scripts that a new script exists 1972 // tell anyone managing scripts that a new script exists
1973 EventManager.TriggerNewScript(agentID, part, taskItem.ItemID); 1973 EventManager.TriggerNewScript(agentID, part, taskItem.ItemID);
@@ -2655,7 +2655,7 @@ namespace OpenSim.Region.Framework.Scenes
2655 2655
2656 // We can only call this after adding the scene object, since the scene object references the scene 2656 // We can only call this after adding the scene object, since the scene object references the scene
2657 // to find out if scripts should be activated at all. 2657 // to find out if scripts should be activated at all.
2658 group.AggregatePerms(); 2658 group.InvalidateEffectivePerms();
2659 group.CreateScriptInstances(param, true, DefaultScriptEngine, 3); 2659 group.CreateScriptInstances(param, true, DefaultScriptEngine, 3);
2660 2660
2661 group.ScheduleGroupForFullUpdate(); 2661 group.ScheduleGroupForFullUpdate();
@@ -2752,7 +2752,7 @@ namespace OpenSim.Region.Framework.Scenes
2752 // and with this comented code, if user does not set next permissions on the object 2752 // and with this comented code, if user does not set next permissions on the object
2753 // and on ALL contents of ALL prims, he may loose rights, making the object useless 2753 // and on ALL contents of ALL prims, he may loose rights, making the object useless
2754 sog.ApplyNextOwnerPermissions(); 2754 sog.ApplyNextOwnerPermissions();
2755 sog.AggregatePerms(); 2755 sog.InvalidateEffectivePerms();
2756 2756
2757 sog.ScheduleGroupForFullUpdate(); 2757 sog.ScheduleGroupForFullUpdate();
2758 2758
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 91d2879..117d92d 100755
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -2094,7 +2094,7 @@ namespace OpenSim.Region.Framework.Scenes
2094 child.TriggerScriptChangedEvent(Changed.OWNER); 2094 child.TriggerScriptChangedEvent(Changed.OWNER);
2095 child.ApplyNextOwnerPermissions(); 2095 child.ApplyNextOwnerPermissions();
2096 } 2096 }
2097 copy.AggregatePerms(); 2097 copy.InvalidateEffectivePerms();
2098 } 2098 }
2099 } 2099 }
2100 2100
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
index 95a5887..6bb92f4 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs
@@ -183,7 +183,7 @@ namespace OpenSim.Region.Framework.Scenes
183 addFromAllowedDrop = (part.ParentGroup.RootPart.GetEffectiveObjectFlags() & (uint)PrimFlags.AllowInventoryDrop) != 0; 183 addFromAllowedDrop = (part.ParentGroup.RootPart.GetEffectiveObjectFlags() & (uint)PrimFlags.AllowInventoryDrop) != 0;
184 184
185 part.Inventory.AddInventoryItem(taskItem, addFromAllowedDrop); 185 part.Inventory.AddInventoryItem(taskItem, addFromAllowedDrop);
186 part.ParentGroup.AggregatePerms(); 186 part.ParentGroup.InvalidateEffectivePerms();
187 return true; 187 return true;
188 188
189 } 189 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 512656b..93c9b42 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2943,7 +2943,7 @@ namespace OpenSim.Region.Framework.Scenes
2943 if (!m_scene.Permissions.BypassPermissions()) 2943 if (!m_scene.Permissions.BypassPermissions())
2944 { 2944 {
2945 ApplyNextOwnerPermissions(); 2945 ApplyNextOwnerPermissions();
2946 AggregatePerms(); 2946 InvalidateEffectivePerms();
2947 } 2947 }
2948 } 2948 }
2949 2949
@@ -3605,7 +3605,7 @@ namespace OpenSim.Region.Framework.Scenes
3605 3605
3606 InvalidBoundsRadius(); 3606 InvalidBoundsRadius();
3607 InvalidatePartsLinkMaps(); 3607 InvalidatePartsLinkMaps();
3608 objectGroup.AggregatePerms(); 3608 objectGroup.InvalidateEffectivePerms();
3609 3609
3610 if (sendEvents) 3610 if (sendEvents)
3611 linkPart.TriggerScriptChangedEvent(Changed.LINK); 3611 linkPart.TriggerScriptChangedEvent(Changed.LINK);
@@ -4163,7 +4163,7 @@ namespace OpenSim.Region.Framework.Scenes
4163// m_log.DebugFormat( 4163// m_log.DebugFormat(
4164// "[SCENE OBJECT GROUP]: RootPart.OwnerMask now {0} for {1} in {2}", 4164// "[SCENE OBJECT GROUP]: RootPart.OwnerMask now {0} for {1} in {2}",
4165// (OpenMetaverse.PermissionMask)RootPart.OwnerMask, Name, Scene.Name); 4165// (OpenMetaverse.PermissionMask)RootPart.OwnerMask, Name, Scene.Name);
4166 AggregatePerms(); 4166 InvalidateEffectivePerms();
4167 RootPart.ScheduleFullUpdate(); 4167 RootPart.ScheduleFullUpdate();
4168 } 4168 }
4169 4169
@@ -4188,7 +4188,7 @@ namespace OpenSim.Region.Framework.Scenes
4188 { 4188 {
4189 foreach (SceneObjectPart part in Parts) 4189 foreach (SceneObjectPart part in Parts)
4190 part.Inventory.ApplyGodPermissions(RootPart.BaseMask); 4190 part.Inventory.ApplyGodPermissions(RootPart.BaseMask);
4191 AggregatePerms(); 4191 InvalidateEffectivePerms();
4192 } 4192 }
4193 4193
4194 HasGroupChanged = true; 4194 HasGroupChanged = true;
@@ -5447,7 +5447,7 @@ namespace OpenSim.Region.Framework.Scenes
5447 { 5447 {
5448 part.ResetOwnerChangeFlag(); 5448 part.ResetOwnerChangeFlag();
5449 }); 5449 });
5450 AggregatePerms(); 5450 InvalidateEffectivePerms();
5451 } 5451 }
5452 5452
5453 // clear some references to easy cg 5453 // clear some references to easy cg
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 21bc19e..23da90a 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -1031,8 +1031,7 @@ namespace OpenSim.Region.Framework.Scenes
1031 1031
1032 if (considerChanged) 1032 if (considerChanged)
1033 { 1033 {
1034 m_part.AggregateInnerPerms(); 1034 m_part.ParentGroup.InvalidateDeepEffectivePerms();
1035 m_part.ParentGroup.AggregatePerms();
1036 HasInventoryChanged = true; 1035 HasInventoryChanged = true;
1037 m_part.ParentGroup.HasGroupChanged = true; 1036 m_part.ParentGroup.HasGroupChanged = true;
1038 } 1037 }
@@ -1075,8 +1074,7 @@ namespace OpenSim.Region.Framework.Scenes
1075 m_items.Remove(itemID); 1074 m_items.Remove(itemID);
1076 m_items.LockItemsForWrite(false); 1075 m_items.LockItemsForWrite(false);
1077 1076
1078 m_part.AggregateInnerPerms(); 1077 m_part.ParentGroup.InvalidateDeepEffectivePerms();
1079 m_part.ParentGroup.AggregatePerms();
1080 1078
1081 m_inventorySerial++; 1079 m_inventorySerial++;
1082 m_part.TriggerScriptChangedEvent(Changed.INVENTORY); 1080 m_part.TriggerScriptChangedEvent(Changed.INVENTORY);