diff options
Merge branch 'master' into careminster-presence-refactor
Integrate the next large patch.
Don't use this version, it has a ghost avatar issue. Next push
will fix it.
Diffstat (limited to 'OpenSim/Region/CoreModules')
5 files changed, 10 insertions, 30 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 7c95658..6f7256e 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -586,13 +586,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
586 | so.RootPart.AttachedAvatar = avatar.UUID; | 586 | so.RootPart.AttachedAvatar = avatar.UUID; |
587 | 587 | ||
588 | //Anakin Lohner bug #3839 | 588 | //Anakin Lohner bug #3839 |
589 | lock (so.Children) | 589 | SceneObjectPart[] parts = so.Parts; |
590 | { | 590 | for (int i = 0; i < parts.Length; i++) |
591 | foreach (SceneObjectPart p in so.Children.Values) | 591 | parts[i].AttachedAvatar = avatar.UUID; |
592 | { | ||
593 | p.AttachedAvatar = avatar.UUID; | ||
594 | } | ||
595 | } | ||
596 | 592 | ||
597 | if (so.RootPart.PhysActor != null) | 593 | if (so.RootPart.PhysActor != null) |
598 | { | 594 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index a2ba498..42e3359 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -544,7 +544,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
544 | if (!attachment) | 544 | if (!attachment) |
545 | { | 545 | { |
546 | group.RootPart.CreateSelected = true; | 546 | group.RootPart.CreateSelected = true; |
547 | foreach (SceneObjectPart child in group.Children.Values) | 547 | foreach (SceneObjectPart child in group.Parts) |
548 | child.CreateSelected = true; | 548 | child.CreateSelected = true; |
549 | } | 549 | } |
550 | 550 | ||
@@ -629,10 +629,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
629 | rootPart.Name = item.Name; | 629 | rootPart.Name = item.Name; |
630 | rootPart.Description = item.Description; | 630 | rootPart.Description = item.Description; |
631 | 631 | ||
632 | List<SceneObjectPart> partList = null; | ||
633 | lock (group.Children) | ||
634 | partList = new List<SceneObjectPart>(group.Children.Values); | ||
635 | |||
636 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); | 632 | group.SetGroup(remoteClient.ActiveGroupId, remoteClient); |
637 | if ((rootPart.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0) | 633 | if ((rootPart.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0) |
638 | { | 634 | { |
@@ -642,7 +638,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
642 | 638 | ||
643 | if (m_Scene.Permissions.PropagatePermissions()) | 639 | if (m_Scene.Permissions.PropagatePermissions()) |
644 | { | 640 | { |
645 | foreach (SceneObjectPart part in partList) | 641 | foreach (SceneObjectPart part in group.Parts) |
646 | { | 642 | { |
647 | part.EveryoneMask = item.EveryOnePermissions; | 643 | part.EveryoneMask = item.EveryOnePermissions; |
648 | part.NextOwnerMask = item.NextPermissions; | 644 | part.NextOwnerMask = item.NextPermissions; |
@@ -656,7 +652,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
656 | { | 652 | { |
657 | m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 8"); | 653 | m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 8"); |
658 | } | 654 | } |
659 | foreach (SceneObjectPart part in partList) | 655 | |
656 | foreach (SceneObjectPart part in group.Parts) | ||
660 | { | 657 | { |
661 | if ((part.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0) | 658 | if ((part.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0) |
662 | { | 659 | { |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index e51f118..4af7a1b 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -243,11 +243,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
243 | // to the same scene (when this is possible). | 243 | // to the same scene (when this is possible). |
244 | sceneObject.ResetIDs(); | 244 | sceneObject.ResetIDs(); |
245 | 245 | ||
246 | List<SceneObjectPart> partList = null; | 246 | foreach (SceneObjectPart part in sceneObject.Parts) |
247 | lock (sceneObject.Children) | ||
248 | partList = new List<SceneObjectPart>(sceneObject.Children.Values); | ||
249 | |||
250 | foreach (SceneObjectPart part in partList) | ||
251 | { | 247 | { |
252 | if (!ResolveUserUuid(part.CreatorID)) | 248 | if (!ResolveUserUuid(part.CreatorID)) |
253 | part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; | 249 | part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs index db50339..d91c36c 100644 --- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs +++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs | |||
@@ -128,14 +128,9 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
128 | group.SetOwnerId(remoteClient.AgentId); | 128 | group.SetOwnerId(remoteClient.AgentId); |
129 | group.SetRootPartOwner(part, remoteClient.AgentId, remoteClient.ActiveGroupId); | 129 | group.SetRootPartOwner(part, remoteClient.AgentId, remoteClient.ActiveGroupId); |
130 | 130 | ||
131 | List<SceneObjectPart> partList = null; | ||
132 | |||
133 | lock (group.Children) | ||
134 | partList = new List<SceneObjectPart>(group.Children.Values); | ||
135 | |||
136 | if (m_scene.Permissions.PropagatePermissions()) | 131 | if (m_scene.Permissions.PropagatePermissions()) |
137 | { | 132 | { |
138 | foreach (SceneObjectPart child in partList) | 133 | foreach (SceneObjectPart child in group.Parts) |
139 | { | 134 | { |
140 | child.Inventory.ChangeInventoryOwner(remoteClient.AgentId); | 135 | child.Inventory.ChangeInventoryOwner(remoteClient.AgentId); |
141 | child.TriggerScriptChangedEvent(Changed.OWNER); | 136 | child.TriggerScriptChangedEvent(Changed.OWNER); |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs index 1bd1371..c83ac85 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapImageModule.cs | |||
@@ -229,11 +229,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
229 | Color mapdotspot = Color.Gray; // Default color when prim color is white | 229 | Color mapdotspot = Color.Gray; // Default color when prim color is white |
230 | 230 | ||
231 | // Loop over prim in group | 231 | // Loop over prim in group |
232 | List<SceneObjectPart> partList = null; | 232 | foreach (SceneObjectPart part in mapdot.Parts) |
233 | lock (mapdot.Children) | ||
234 | partList = new List<SceneObjectPart>(mapdot.Children.Values); | ||
235 | |||
236 | foreach (SceneObjectPart part in partList) | ||
237 | { | 233 | { |
238 | if (part == null) | 234 | if (part == null) |
239 | continue; | 235 | continue; |