diff options
Diffstat (limited to 'OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs')
-rw-r--r-- | OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs index 42e6510..74ba0a5 100644 --- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs +++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs | |||
@@ -232,7 +232,26 @@ namespace OpenSim.Framework.Communications.Cache | |||
232 | /// <returns></returns> | 232 | /// <returns></returns> |
233 | public Dictionary<UUID, InventoryFolderImpl> RequestSelfAndDescendentFolders() | 233 | public Dictionary<UUID, InventoryFolderImpl> RequestSelfAndDescendentFolders() |
234 | { | 234 | { |
235 | return libraryFolders; | 235 | Dictionary<UUID, InventoryFolderImpl> fs = new Dictionary<UUID, InventoryFolderImpl>(); |
236 | fs.Add(ID, this); | ||
237 | List<InventoryFolderImpl> fis = TraverseFolder(this); | ||
238 | foreach (InventoryFolderImpl f in fis) | ||
239 | { | ||
240 | fs.Add(f.ID, f); | ||
241 | } | ||
242 | //return libraryFolders; | ||
243 | return fs; | ||
244 | } | ||
245 | |||
246 | private List<InventoryFolderImpl> TraverseFolder(InventoryFolderImpl node) | ||
247 | { | ||
248 | List<InventoryFolderImpl> folders = node.RequestListOfFolderImpls(); | ||
249 | List<InventoryFolderImpl> subs = new List<InventoryFolderImpl>(); | ||
250 | foreach (InventoryFolderImpl f in folders) | ||
251 | subs.AddRange(TraverseFolder(f)); | ||
252 | |||
253 | folders.AddRange(subs); | ||
254 | return folders; | ||
236 | } | 255 | } |
237 | } | 256 | } |
238 | } | 257 | } |