diff options
author | Justin Clark-Casey (justincc) | 2012-06-22 01:39:39 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-22 01:43:26 +0100 |
commit | 4cf49369b51c21a0eadd719eb46f53d207e1e5f7 (patch) | |
tree | 64f70cb17474fa90f46e8ecb0adeaae44f55e42e | |
parent | Fix bug where attachments would not retain position if just rotated and not m... (diff) | |
download | opensim-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.cs | 10 |
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 | ||