aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorJohn Hurliman2010-09-16 17:31:24 -0700
committerJohn Hurliman2010-09-16 17:31:24 -0700
commit5321e0e69f5813b03748155193b0833f28c532ec (patch)
treec51d4cc760056928e97a56b09b170259b0b9e5fd /OpenSim/Region/Framework
parentChanged SceneObjectGroup to store parts with the fast and thread-safe MapAndA... (diff)
parentFix build break by replacing Items.LockItemsForWrite() with lock (Items) {} (diff)
downloadopensim-SC-5321e0e69f5813b03748155193b0833f28c532ec.zip
opensim-SC-5321e0e69f5813b03748155193b0833f28c532ec.tar.gz
opensim-SC-5321e0e69f5813b03748155193b0833f28c532ec.tar.bz2
opensim-SC-5321e0e69f5813b03748155193b0833f28c532ec.tar.xz
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Interfaces/IEntityInventory.cs9
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs27
3 files changed, 38 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
index 7edb43e..2e6faa0 100644
--- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
@@ -58,6 +58,15 @@ namespace OpenSim.Region.Framework.Interfaces
58 void ResetInventoryIDs(); 58 void ResetInventoryIDs();
59 59
60 /// <summary> 60 /// <summary>
61 /// Reset parent object UUID for all the items in the prim's inventory.
62 /// </summary>
63 ///
64 /// If this method is called and there are inventory items, then we regard the inventory as having changed.
65 ///
66 /// <param name="linkNum">Link number for the part</param>
67 void ResetObjectID();
68
69 /// <summary>
61 /// Change every item in this inventory to a new owner. 70 /// Change every item in this inventory to a new owner.
62 /// </summary> 71 /// </summary>
63 /// <param name="ownerId"></param> 72 /// <param name="ownerId"></param>
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 024bdc9..95cd26f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -500,7 +500,7 @@ namespace OpenSim.Region.Framework.Scenes
500 500
501 // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part 501 // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part
502 if (Inventory != null) 502 if (Inventory != null)
503 Inventory.ResetInventoryIDs(); 503 Inventory.ResetObjectID();
504 } 504 }
505 } 505 }
506 506
@@ -2763,6 +2763,7 @@ namespace OpenSim.Region.Framework.Scenes
2763 UUID = UUID.Random(); 2763 UUID = UUID.Random();
2764 LinkNum = linkNum; 2764 LinkNum = linkNum;
2765 LocalId = 0; 2765 LocalId = 0;
2766 Inventory.ResetInventoryIDs();
2766 } 2767 }
2767 2768
2768 /// <summary> 2769 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 0e3daf76..210f5cd 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -140,6 +140,33 @@ namespace OpenSim.Region.Framework.Scenes
140 } 140 }
141 } 141 }
142 142
143 public void ResetObjectID()
144 {
145 lock (Items)
146 {
147 if (Items.Count == 0)
148 {
149 return;
150 }
151
152 HasInventoryChanged = true;
153 if (m_part.ParentGroup != null)
154 {
155 m_part.ParentGroup.HasGroupChanged = true;
156 }
157
158 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(Items.Values);
159 Items.Clear();
160
161 foreach (TaskInventoryItem item in items)
162 {
163 item.ParentPartID = m_part.UUID;
164 item.ParentID = m_part.UUID;
165 Items.Add(item.ItemID, item);
166 }
167 }
168 }
169
143 /// <summary> 170 /// <summary>
144 /// Change every item in this inventory to a new owner. 171 /// Change every item in this inventory to a new owner.
145 /// </summary> 172 /// </summary>