aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-22 01:39:39 +0100
committerJustin Clark-Casey (justincc)2012-06-22 01:43:26 +0100
commit4cf49369b51c21a0eadd719eb46f53d207e1e5f7 (patch)
tree64f70cb17474fa90f46e8ecb0adeaae44f55e42e
parentFix bug where attachments would not retain position if just rotated and not m... (diff)
downloadopensim-SC-4cf49369b51c21a0eadd719eb46f53d207e1e5f7.zip
opensim-SC-4cf49369b51c21a0eadd719eb46f53d207e1e5f7.tar.gz
opensim-SC-4cf49369b51c21a0eadd719eb46f53d207e1e5f7.tar.bz2
opensim-SC-4cf49369b51c21a0eadd719eb46f53d207e1e5f7.tar.xz
Stop flicking IsAttachment false and then true in AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition.
Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information. However, UpdateAttachmentPosition no longer does this update. Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs10
1 files changed, 0 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index b74c0ba..a2b95eb 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -408,17 +408,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
408 if (!Enabled) 408 if (!Enabled)
409 return; 409 return;
410 410
411 // First we save the
412 // attachment point information, then we update the relative
413 // positioning. Then we have to mark the object as NOT an
414 // attachment. This is necessary in order to correctly save
415 // and retrieve GroupPosition information for the attachment.
416 // Finally, we restore the object's attachment status.
417 uint attachmentPoint = sog.AttachmentPoint;
418 sog.UpdateGroupPosition(pos); 411 sog.UpdateGroupPosition(pos);
419 sog.IsAttachment = false;
420 sog.AbsolutePosition = sog.RootPart.AttachedPos;
421 sog.AttachmentPoint = attachmentPoint;
422 sog.HasGroupChanged = true; 412 sog.HasGroupChanged = true;
423 } 413 }
424 414