* an attempt to resolve the teleport + attachment = crash

0.6.0-stable
Teravus Ovares 2008-05-24 03:19:57 +00:00
parent b3e413bef7
commit c98fb26789
1 changed files with 19 additions and 4 deletions

View File

@ -93,6 +93,8 @@ namespace OpenSim.Region.Environment.Scenes
private float m_sitAvatarHeight = 2.0f;
private float m_godlevel = 0;
private bool m_attachmentsTransported = false;
private bool m_invulnerable = true;
private LLVector3 m_LastChildAgentUpdatePosition = new LLVector3();
@ -1950,13 +1952,24 @@ namespace OpenSim.Region.Environment.Scenes
internal void Close()
{
lock (m_attachments)
{
if (!m_attachmentsTransported)
{
try
{
foreach (SceneObjectGroup grp in m_attachments)
{
// ControllingClient may be null at this point!
m_scene.m_innerScene.DetachSingleAttachmentToInv(grp.GetFromAssetID(), ControllingClient);
}
}
catch (InvalidOperationException)
{
m_log.Info("[CLIENT]: Couldn't save attachments. :(");
}
m_attachments.Clear();
}
}
lock (m_knownPrimUUID)
{
@ -2016,8 +2029,10 @@ namespace OpenSim.Region.Environment.Scenes
public void CrossAttachmentsIntoNewRegion(ulong regionHandle)
{
m_attachmentsTransported = true;
lock (m_attachments)
{
foreach (SceneObjectGroup gobj in m_attachments)
{
// If the prim group is null then something must have happened to it!