diff options
author | Justin Clark-Casey (justincc) | 2012-04-07 00:33:02 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-07 00:33:02 +0100 |
commit | 7d8bb33c5b2420d4e744269f67a25dd2b9746a35 (patch) | |
tree | 53e2c0d0258e81c4e87ae78521e85d98d115becc /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |
parent | refactor: Eliminate unnecessary SOP.m_physActor (diff) | |
download | opensim-SC-7d8bb33c5b2420d4e744269f67a25dd2b9746a35.zip opensim-SC-7d8bb33c5b2420d4e744269f67a25dd2b9746a35.tar.gz opensim-SC-7d8bb33c5b2420d4e744269f67a25dd2b9746a35.tar.bz2 opensim-SC-7d8bb33c5b2420d4e744269f67a25dd2b9746a35.tar.xz |
Store FromItemID for attachments once on SOG instead of on every SOP and only ever using the root part entry.
This eliminates some pointless memory use.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 87fdc41..3586e95 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -571,7 +571,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
571 | set { m_LoopSoundSlavePrims = value; } | 571 | set { m_LoopSoundSlavePrims = value; } |
572 | } | 572 | } |
573 | 573 | ||
574 | // The UUID for the Region this Object is in. | 574 | /// <summary> |
575 | /// The UUID for the region this object is in. | ||
576 | /// </summary> | ||
575 | public UUID RegionUUID | 577 | public UUID RegionUUID |
576 | { | 578 | { |
577 | get | 579 | get |
@@ -584,6 +586,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
584 | } | 586 | } |
585 | } | 587 | } |
586 | 588 | ||
589 | /// <summary> | ||
590 | /// The item ID that this object was rezzed from, if applicable. | ||
591 | /// </summary> | ||
592 | public UUID FromItemID { get; set; } | ||
593 | |||
587 | #endregion | 594 | #endregion |
588 | 595 | ||
589 | // ~SceneObjectGroup() | 596 | // ~SceneObjectGroup() |
@@ -646,18 +653,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
646 | } | 653 | } |
647 | } | 654 | } |
648 | 655 | ||
649 | public void SetFromItemID(UUID AssetId) | ||
650 | { | ||
651 | SceneObjectPart[] parts = m_parts.GetArray(); | ||
652 | for (int i = 0; i < parts.Length; i++) | ||
653 | parts[i].FromItemID = AssetId; | ||
654 | } | ||
655 | |||
656 | public UUID GetFromItemID() | ||
657 | { | ||
658 | return m_rootPart.FromItemID; | ||
659 | } | ||
660 | |||
661 | /// <summary> | 656 | /// <summary> |
662 | /// Hooks this object up to the backup event so that it is persisted to the database when the update thread executes. | 657 | /// Hooks this object up to the backup event so that it is persisted to the database when the update thread executes. |
663 | /// </summary> | 658 | /// </summary> |
@@ -2687,6 +2682,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2687 | { | 2682 | { |
2688 | m_rootPart.AttachedPos = pos; | 2683 | m_rootPart.AttachedPos = pos; |
2689 | } | 2684 | } |
2685 | |||
2690 | if (RootPart.GetStatusSandbox()) | 2686 | if (RootPart.GetStatusSandbox()) |
2691 | { | 2687 | { |
2692 | if (Util.GetDistanceTo(RootPart.StatusSandboxPos, pos) > 10) | 2688 | if (Util.GetDistanceTo(RootPart.StatusSandboxPos, pos) > 10) |
@@ -2697,8 +2693,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2697 | ChatTypeEnum.DebugChannel, 0x7FFFFFFF, RootPart.AbsolutePosition, Name, UUID, false); | 2693 | ChatTypeEnum.DebugChannel, 0x7FFFFFFF, RootPart.AbsolutePosition, Name, UUID, false); |
2698 | } | 2694 | } |
2699 | } | 2695 | } |
2700 | AbsolutePosition = pos; | ||
2701 | 2696 | ||
2697 | AbsolutePosition = pos; | ||
2702 | HasGroupChanged = true; | 2698 | HasGroupChanged = true; |
2703 | } | 2699 | } |
2704 | 2700 | ||
@@ -3270,7 +3266,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3270 | 3266 | ||
3271 | public virtual string ExtraToXmlString() | 3267 | public virtual string ExtraToXmlString() |
3272 | { | 3268 | { |
3273 | return "<ExtraFromItemID>" + GetFromItemID().ToString() + "</ExtraFromItemID>"; | 3269 | return "<ExtraFromItemID>" + FromItemID.ToString() + "</ExtraFromItemID>"; |
3274 | } | 3270 | } |
3275 | 3271 | ||
3276 | public virtual void ExtraFromXmlString(string xmlstr) | 3272 | public virtual void ExtraFromXmlString(string xmlstr) |
@@ -3282,7 +3278,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3282 | UUID uuid = UUID.Zero; | 3278 | UUID uuid = UUID.Zero; |
3283 | UUID.TryParse(id, out uuid); | 3279 | UUID.TryParse(id, out uuid); |
3284 | 3280 | ||
3285 | SetFromItemID(uuid); | 3281 | FromItemID = uuid; |
3286 | } | 3282 | } |
3287 | 3283 | ||
3288 | #endregion | 3284 | #endregion |