aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2014-03-25 03:17:44 +0100
committerMelanie Thielker2014-03-25 03:17:44 +0100
commita30ad71651cb49720bf8b04e2d651bd28f5b8ea2 (patch)
treedcb37a3ef1c4c839b88310d57bc0ad70e8b35936
parentRemove the spammy "voice not enabled" message some viewers trigger in non voi... (diff)
downloadopensim-SC-a30ad71651cb49720bf8b04e2d651bd28f5b8ea2.zip
opensim-SC-a30ad71651cb49720bf8b04e2d651bd28f5b8ea2.tar.gz
opensim-SC-a30ad71651cb49720bf8b04e2d651bd28f5b8ea2.tar.bz2
opensim-SC-a30ad71651cb49720bf8b04e2d651bd28f5b8ea2.tar.xz
Guard against Scene being null in attachments it the wearing avatar is in the process of logging out.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs30
1 files changed, 16 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3e1dcaa..86f60bb 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1886,25 +1886,27 @@ namespace OpenSim.Region.Framework.Scenes
1886 { 1886 {
1887 SceneObjectPart part = parts[i]; 1887 SceneObjectPart part = parts[i];
1888 1888
1889 Scene.ForEachRootScenePresence(delegate(ScenePresence avatar) 1889 if (Scene != null)
1890 { 1890 {
1891 if (avatar.ParentID == LocalId) 1891 Scene.ForEachRootScenePresence(delegate(ScenePresence avatar)
1892 avatar.StandUp();
1893
1894 if (!silent)
1895 { 1892 {
1896 part.ClearUpdateSchedule(); 1893 if (avatar.ParentID == LocalId)
1897 if (part == m_rootPart) 1894 avatar.StandUp();
1895
1896 if (!silent)
1898 { 1897 {
1899 if (!IsAttachment 1898 part.ClearUpdateSchedule();
1900 || AttachedAvatar == avatar.ControllingClient.AgentId 1899 if (part == m_rootPart)
1901 || !HasPrivateAttachmentPoint) 1900 {
1902 avatar.ControllingClient.SendKillObject(m_regionHandle, new List<uint> { part.LocalId }); 1901 if (!IsAttachment
1902 || AttachedAvatar == avatar.ControllingClient.AgentId
1903 || !HasPrivateAttachmentPoint)
1904 avatar.ControllingClient.SendKillObject(m_regionHandle, new List<uint> { part.LocalId });
1905 }
1903 } 1906 }
1904 } 1907 });
1905 }); 1908 }
1906 } 1909 }
1907
1908 } 1910 }
1909 1911
1910 public void AddScriptLPS(int count) 1912 public void AddScriptLPS(int count)