From cd79be569cf74c7bead86305caed1f9050d0db8c Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 24 May 2008 21:13:44 +0000 Subject: * Fixes endless loop in the Land Module when selecting any object. * Fixes returning objects when the object owner hasn't been in the simulator since the simulator started up last. --- OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | 3 +++ OpenSim/Region/Environment/Modules/World/Land/LandObject.cs | 3 +++ 2 files changed, 6 insertions(+) (limited to 'OpenSim/Region/Environment/Modules/World') diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index 5bc28f7..29e3143 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs @@ -582,6 +582,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land public void UpdateLandPrimCounts() { + ResetAllLandPrimCounts(); foreach (EntityBase obj in m_scene.Entities.Values) { if (obj is SceneObjectGroup) @@ -589,6 +590,8 @@ namespace OpenSim.Region.Environment.Modules.World.Land m_scene.EventManager.TriggerParcelPrimCountAdd((SceneObjectGroup)obj); } } + FinalizeLandPrimCountUpdate(); + landPrimCountTainted = false; } public void PerformParcelPrimCountUpdate() diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs index 1a83f60..2f4f971 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs @@ -751,12 +751,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land landData.ownerPrims = 0; landData.otherPrims = 0; landData.selectedPrims = 0; + + lock (primsOverMe) primsOverMe.Clear(); } public void addPrimToCount(SceneObjectGroup obj) { + LLUUID prim_owner = obj.OwnerID; int prim_count = obj.PrimCount; -- cgit v1.1