From 99bd7cce2b4be9c3c1c5de6da0343493a7241630 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 17 Nov 2008 16:33:41 +0000 Subject: [PATCH] * Make sure that deleted objects do not send further object updates to the client --- .../Scenes/AsyncSceneObjectGroupDeleter.cs | 2 +- .../Environment/Scenes/SceneObjectGroup.cs | 6 ++++++ .../Environment/Scenes/SceneObjectPart.cs | 19 ++++--------------- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs index b01160048c..58e0ca3a66 100644 --- a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs @@ -131,7 +131,7 @@ namespace OpenSim.Region.Environment.Scenes } catch (Exception e) { - m_log.DebugFormat("Exception background deleting object: " +e); + m_log.DebugFormat("Exception background deleting object: " + e); } return true; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 91caada3bc..bf430b9d0c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -1682,6 +1682,9 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendGroupFullUpdate() { + if (IsDeleted) + return; + RootPart.SendFullUpdateToAllClients(); lock (m_parts) @@ -1704,6 +1707,9 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendGroupTerseUpdate() { + if (IsDeleted) + return; + lock (m_parts) { foreach (SceneObjectPart part in m_parts.Values) diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 74fa72532b..fa656f6951 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -2074,6 +2074,9 @@ if (m_shape != null) { // if (ParentGroup.IsSelected && IsAttachment) return; + + if (ParentGroup.IsDeleted) + return; clientFlags &= ~(uint) PrimFlags.CreateSelected; @@ -2179,16 +2182,7 @@ if (m_shape != null) { } /// - /// Send a terse update to the client. - /// - /// -// public void SendTerseUpdate(IClientAPI remoteClient) -// { -// SendTerseUpdateToClient(remoteClient); -// } - - /// - /// + /// Send a terse update to all clients /// public void SendTerseUpdateToAllClients() { @@ -2199,11 +2193,6 @@ if (m_shape != null) { } } -// public void SendTerseUpdateToClient(IClientAPI remoteClient, Vector3 lPos) -// { -// SendTerseUpdateToClient(remoteclient); -// } - public void SetAttachmentPoint(uint AttachmentPoint) { this.AttachmentPoint = AttachmentPoint;