aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-11-17 15:40:27 +0000
committerJustin Clarke Casey2008-11-17 15:40:27 +0000
commitd54b6608a7acfa7fc9fd074f2fbd241519067fcb (patch)
tree4fb604c6b80f0e67d9ea8e884941386a9a4d6a4f /OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
parentfixing warnings in YProlog language support (diff)
downloadopensim-SC_OLD-d54b6608a7acfa7fc9fd074f2fbd241519067fcb.zip
opensim-SC_OLD-d54b6608a7acfa7fc9fd074f2fbd241519067fcb.tar.gz
opensim-SC_OLD-d54b6608a7acfa7fc9fd074f2fbd241519067fcb.tar.bz2
opensim-SC_OLD-d54b6608a7acfa7fc9fd074f2fbd241519067fcb.tar.xz
* Stop nulling SOG.m_rootPart and parts on object deletion
* This renders RootPart == null checks useless - the replacement is to check SOG.IsDeleted. However, in many cases this will not be necessary since updates to deleted parts will not be sent to the client * This should remove any remaining race conditions where an object is deleted while another thread is yet to obtain the root part to perform some operation * Doing this is probably a necessary prerequisite to moving to a model without a separate SOG and SOP * Unfortunately it's not possible to eliminate all RootPart == null checks since in some contexts it is currently used to check whether an object was created successfully
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs4
1 files changed, 2 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 9ad8382..cc8501d 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1552,7 +1552,7 @@ namespace OpenSim.Region.Environment.Scenes
1552 if (part == null) 1552 if (part == null)
1553 return; 1553 return;
1554 1554
1555 if (part.ParentGroup == null || part.ParentGroup.RootPart == null) 1555 if (part.ParentGroup == null || part.ParentGroup.IsDeleted)
1556 return; 1556 return;
1557 1557
1558 // Can't delete child prims 1558 // Can't delete child prims
@@ -2379,7 +2379,7 @@ namespace OpenSim.Region.Environment.Scenes
2379 public UUID RezSingleAttachment(SceneObjectGroup att, 2379 public UUID RezSingleAttachment(SceneObjectGroup att,
2380 IClientAPI remoteClient, UUID itemID, uint AttachmentPt) 2380 IClientAPI remoteClient, UUID itemID, uint AttachmentPt)
2381 { 2381 {
2382 if (att.RootPart != null) 2382 if (!att.IsDeleted)
2383 AttachmentPt = att.RootPart.AttachmentPoint; 2383 AttachmentPt = att.RootPart.AttachmentPoint;
2384 2384
2385 ScenePresence presence; 2385 ScenePresence presence;