avinationmerge
UbitUmarov 2014-08-03 19:35:16 +01:00
parent c2d9a6499a
commit 6b3f10790e
1 changed files with 15 additions and 11 deletions

View File

@ -390,7 +390,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
if (sp.PresenceType != PresenceType.Npc) if (sp.PresenceType != PresenceType.Npc)
{ {
m_log.DebugFormat("[ATTACHMENTS MODULE]: enter PrepareScriptInstanceForSave loop");
foreach (SceneObjectGroup so in attachments) foreach (SceneObjectGroup so in attachments)
{ {
// Scripts MUST be snapshotted before the object is // Scripts MUST be snapshotted before the object is
@ -400,18 +399,23 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
// scripts performing attachment operations at the same time. Getting object states stops the scripts. // scripts performing attachment operations at the same time. Getting object states stops the scripts.
scriptStates[so] = PrepareScriptInstanceForSave(so, false); scriptStates[so] = PrepareScriptInstanceForSave(so, false);
} }
}
m_log.DebugFormat("[ATTACHMENTS MODULE]: enter UpdateDetachedObject loop");
lock (sp.AttachmentsSyncLock) lock (sp.AttachmentsSyncLock)
{ {
foreach (SceneObjectGroup so in attachments) foreach (SceneObjectGroup so in attachments)
UpdateDetachedObject(sp, so, scriptStates[so]); UpdateDetachedObject(sp, so, scriptStates[so]);
m_log.DebugFormat("[ATTACHMENTS MODULE]: enter ClearAttachments");
sp.ClearAttachments(); sp.ClearAttachments();
} }
m_log.DebugFormat("[ATTACHMENTS MODULE]: derez done"); }
else
{
lock (sp.AttachmentsSyncLock)
{
foreach (SceneObjectGroup so in attachments)
UpdateDetachedObject(sp, so, String.Empty);
sp.ClearAttachments();
}
}
} }
public void DeleteAttachmentsFromScene(IScenePresence sp, bool silent) public void DeleteAttachmentsFromScene(IScenePresence sp, bool silent)