aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs6
1 files changed, 2 insertions, 4 deletions
diff --git a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
index b3196d9..1594c55 100644
--- a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
+++ b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
@@ -260,7 +260,7 @@ namespace OpenSim.Capabilities.Handlers
260 // descendents must only include the links, not the linked items we add 260 // descendents must only include the links, not the linked items we add
261 descendents = originalItems.Count; 261 descendents = originalItems.Count;
262 262
263 // Second, add target items for links in this folder 263 // Add target items for links in this folder before the links themselves.
264 foreach (InventoryItemBase item in originalItems) 264 foreach (InventoryItemBase item in originalItems)
265 { 265 {
266 if (item.AssetType == (int)AssetType.Link) 266 if (item.AssetType == (int)AssetType.Link)
@@ -276,7 +276,7 @@ namespace OpenSim.Capabilities.Handlers
276 } 276 }
277 } 277 }
278 278
279 // First, scan for folder links and add target items in those folders. 279 // Now scan for folder links and insert the items they target and those links at the head of the return data
280 foreach (InventoryItemBase item in originalItems) 280 foreach (InventoryItemBase item in originalItems)
281 { 281 {
282 if (item.AssetType == (int)AssetType.LinkFolder) 282 if (item.AssetType == (int)AssetType.LinkFolder)
@@ -284,10 +284,8 @@ namespace OpenSim.Capabilities.Handlers
284 InventoryCollection linkedFolderContents = m_InventoryService.GetFolderContent(ownerID, item.AssetID); 284 InventoryCollection linkedFolderContents = m_InventoryService.GetFolderContent(ownerID, item.AssetID);
285 List<InventoryItemBase> links = linkedFolderContents.Items; 285 List<InventoryItemBase> links = linkedFolderContents.Items;
286 286
287 // Second, insert the links contained in this linked folder.
288 itemsToReturn.InsertRange(0, links); 287 itemsToReturn.InsertRange(0, links);
289 288
290 // Third, insert the real items linked by the links in this linked folder.
291 foreach (InventoryItemBase link in linkedFolderContents.Items) 289 foreach (InventoryItemBase link in linkedFolderContents.Items)
292 { 290 {
293 // Take care of genuinely broken links where the target doesn't exist 291 // Take care of genuinely broken links where the target doesn't exist