some cleaup
This commit is contained in:
@@ -26,9 +26,7 @@
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
@@ -47,18 +45,22 @@ namespace OpenSim.Capabilities.Handlers
|
||||
{
|
||||
public class FetchInvDescHandler
|
||||
{
|
||||
private static readonly ILog m_log =
|
||||
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private static byte[] EmptyResponse = Util.UTF8NBGetbytes("<llsd><map><key>folders</key><array /></map></llsd>");
|
||||
private IInventoryService m_InventoryService;
|
||||
private ILibraryService m_LibraryService;
|
||||
private IScene m_Scene;
|
||||
private static readonly byte[] EmptyResponse = Util.UTF8NBGetbytes("<llsd><map><key>folders</key><array /></map></llsd>");
|
||||
private readonly IInventoryService m_InventoryService;
|
||||
private readonly ILibraryService m_LibraryService;
|
||||
private readonly UUID libOwner;
|
||||
private readonly IScene m_Scene;
|
||||
|
||||
public FetchInvDescHandler(IInventoryService invService, ILibraryService libService, IScene s)
|
||||
{
|
||||
m_InventoryService = invService;
|
||||
m_LibraryService = libService;
|
||||
if(libService != null && libService.LibraryRootFolder != null)
|
||||
{
|
||||
m_LibraryService = libService;
|
||||
libOwner = libService.LibraryRootFolder.Owner;
|
||||
}
|
||||
m_Scene = s;
|
||||
}
|
||||
|
||||
@@ -167,24 +169,16 @@ namespace OpenSim.Capabilities.Handlers
|
||||
return;
|
||||
}
|
||||
|
||||
int total_folders = 0;
|
||||
int total_items = 0;
|
||||
|
||||
UUID requester = folders[0].owner_id;
|
||||
|
||||
List<InventoryCollection> invcollSet = Fetch(folders, bad_folders, ref total_folders, ref total_items);
|
||||
List<InventoryCollection> invcollSet = Fetch(folders, bad_folders);
|
||||
//m_log.DebugFormat("[XXX]: Got {0} folders from a request of {1}", invcollSet.Count, folders.Count);
|
||||
|
||||
int invcollSetCount = 0;
|
||||
if (invcollSet != null)
|
||||
invcollSetCount = invcollSet.Count;
|
||||
|
||||
int mem = 8192 + ((256 * invcollSetCount +
|
||||
384 * total_folders +
|
||||
1024 * total_items +
|
||||
128 * bad_folders.Count) & 0x7ffff000);
|
||||
|
||||
osUTF8 lastresponse = LLSDxmlEncode2.Start(mem);
|
||||
osUTF8 lastresponse = LLSDxmlEncode2.Start();
|
||||
|
||||
if (invcollSetCount > 0)
|
||||
{
|
||||
@@ -280,7 +274,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
httpResponse.RawBuffer = LLSDxmlEncode2.EndToBytes(lastresponse);
|
||||
}
|
||||
|
||||
private void AddLibraryFolders(List<LLSDFetchInventoryDescendents> libFolders, List<InventoryCollection> result, ref int total_folders, ref int total_items)
|
||||
private void AddLibraryFolders(List<LLSDFetchInventoryDescendents> libFolders, List<InventoryCollection> result)
|
||||
{
|
||||
InventoryFolderImpl fold;
|
||||
if (m_LibraryService == null || m_LibraryService.LibraryRootFolder == null)
|
||||
@@ -299,8 +293,6 @@ namespace OpenSim.Capabilities.Handlers
|
||||
Collection.Version = fold.Version;
|
||||
|
||||
Collection.Descendents = Collection.Items.Count + Collection.Folders.Count;
|
||||
total_folders += Collection.Folders.Count;
|
||||
total_items += Collection.Items.Count;
|
||||
result.Add(Collection);
|
||||
|
||||
//m_log.DebugFormat("[XXX]: Added libfolder {0} ({1}) {2}", ret.Collection.FolderID, ret.Collection.OwnerID);
|
||||
@@ -308,7 +300,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
}
|
||||
}
|
||||
|
||||
private List<InventoryCollection> Fetch(List<LLSDFetchInventoryDescendents> fetchFolders, List<UUID> bad_folders, ref int total_folders, ref int total_items)
|
||||
private List<InventoryCollection> Fetch(List<LLSDFetchInventoryDescendents> fetchFolders, List<UUID> bad_folders)
|
||||
{
|
||||
//m_log.DebugFormat(
|
||||
// "[WEB FETCH INV DESC HANDLER]: Fetching {0} folders for owner {1}", fetchFolders.Count, fetchFolders[0].owner_id);
|
||||
@@ -321,10 +313,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
HashSet<UUID> libIDs = new HashSet<UUID>();
|
||||
HashSet<UUID> otherIDs = new HashSet<UUID>();
|
||||
|
||||
bool dolib = (m_LibraryService != null && m_LibraryService.LibraryRootFolder != null);
|
||||
UUID libOwner = UUID.Zero;
|
||||
if(dolib)
|
||||
libOwner = m_LibraryService.LibraryRootFolder.Owner;
|
||||
bool dolib = m_LibraryService != null;
|
||||
|
||||
// Filter folder Zero right here. Some viewers (Firestorm) send request for folder Zero, which doesn't make sense
|
||||
// and can kill the sim (all root folders have parent_id Zero)
|
||||
@@ -345,7 +334,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
result.Add(Collection);
|
||||
continue;
|
||||
}
|
||||
if(dolib && f.owner_id == libOwner)
|
||||
if(dolib && f.owner_id.Equals(libOwner))
|
||||
{
|
||||
if(libIDs.Contains(f.folder_id))
|
||||
continue;
|
||||
@@ -364,8 +353,6 @@ namespace OpenSim.Capabilities.Handlers
|
||||
|
||||
if(otherFolders.Count > 0)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
//m_log.DebugFormat("[XXX]: {0}", string.Join(",", fids));
|
||||
|
||||
InventoryCollection[] fetchedContents = m_InventoryService.GetMultipleFoldersContent(otherFolders[0].owner_id, otherIDs.ToArray());
|
||||
@@ -380,7 +367,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
}
|
||||
else
|
||||
{
|
||||
i = 0;
|
||||
int i = 0;
|
||||
// Do some post-processing. May need to fetch more from inv server for links
|
||||
foreach (InventoryCollection contents in fetchedContents)
|
||||
{
|
||||
@@ -402,17 +389,13 @@ namespace OpenSim.Capabilities.Handlers
|
||||
// Next: link management
|
||||
ProcessLinks(freq, contents);
|
||||
|
||||
total_folders += contents.Folders.Count;
|
||||
total_items += contents.Items.Count;
|
||||
result.Add(contents);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(dolib && libFolders.Count > 0)
|
||||
{
|
||||
AddLibraryFolders(libFolders, result, ref total_folders, ref total_items);
|
||||
}
|
||||
if(libFolders.Count > 0)
|
||||
AddLibraryFolders(libFolders, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
@@ -46,19 +46,27 @@ namespace OpenSim.Capabilities.Handlers
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private static byte[] EmptyResponse = Util.UTF8NBGetbytes("<llsd><map><key>folders</key><array /></map></llsd>");
|
||||
private ILibraryService m_LibraryService;
|
||||
private IScene m_Scene;
|
||||
private static readonly byte[] EmptyResponse = Util.UTF8NBGetbytes("<llsd><map><key>folders</key><array /></map></llsd>");
|
||||
private readonly ILibraryService m_LibraryService;
|
||||
private readonly UUID libOwner;
|
||||
private readonly IScene m_Scene;
|
||||
|
||||
public FetchLibDescHandler(ILibraryService libService, IScene s)
|
||||
{
|
||||
m_LibraryService = libService;
|
||||
libOwner = m_LibraryService.LibraryRootFolder.Owner;
|
||||
m_Scene = s;
|
||||
}
|
||||
|
||||
public void FetchRequest(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, ExpiringKey<UUID> BadRequests)
|
||||
{
|
||||
//m_log.DebugFormat("[XXX]: FetchLibDescendentsRequest in {0}, {1}", (m_Scene == null) ? "none" : m_Scene.Name, request);
|
||||
if (m_LibraryService == null || m_LibraryService.LibraryRootFolder == null)
|
||||
{
|
||||
httpResponse.StatusCode = (int)HttpStatusCode.ServiceUnavailable;
|
||||
return;
|
||||
}
|
||||
httpResponse.StatusCode = (int)HttpStatusCode.OK;
|
||||
|
||||
List<LLSDFetchInventoryDescendents> folders = null;
|
||||
List<UUID> bad_folders = new List<UUID>();
|
||||
@@ -161,25 +169,16 @@ namespace OpenSim.Capabilities.Handlers
|
||||
return;
|
||||
}
|
||||
|
||||
int total_folders = 0;
|
||||
int total_items = 0;
|
||||
|
||||
UUID requester = folders[0].owner_id;
|
||||
|
||||
List<InventoryCollection> invcollSet = Fetch(folders, bad_folders, ref total_folders, ref total_items);
|
||||
List<InventoryCollection> invcollSet = Fetch(folders, bad_folders);
|
||||
//m_log.DebugFormat("[XXX]: Got {0} folders from a request of {1}", invcollSet.Count, folders.Count);
|
||||
|
||||
int invcollSetCount = 0;
|
||||
if (invcollSet != null)
|
||||
invcollSetCount = invcollSet.Count;
|
||||
|
||||
int mem = 8192 + ((256 * invcollSetCount +
|
||||
384 * total_folders +
|
||||
1024 * total_items +
|
||||
128 * bad_folders.Count) & 0x7ffff000);
|
||||
|
||||
osUTF8 lastresponse = LLSDxmlEncode2.Start(mem);
|
||||
|
||||
osUTF8 lastresponse = LLSDxmlEncode2.Start();
|
||||
if (invcollSetCount > 0)
|
||||
{
|
||||
lastresponse.AppendASCII("<map><key>folders</key><array>");
|
||||
@@ -274,46 +273,16 @@ namespace OpenSim.Capabilities.Handlers
|
||||
httpResponse.RawBuffer = LLSDxmlEncode2.EndToBytes(lastresponse);
|
||||
}
|
||||
|
||||
private void AddLibraryFolders(List<LLSDFetchInventoryDescendents> libFolders, List<InventoryCollection> result, ref int total_folders, ref int total_items)
|
||||
{
|
||||
InventoryFolderImpl fold;
|
||||
if (m_LibraryService == null || m_LibraryService.LibraryRootFolder == null)
|
||||
return;
|
||||
|
||||
foreach (LLSDFetchInventoryDescendents f in libFolders)
|
||||
{
|
||||
if ((fold = m_LibraryService.LibraryRootFolder.FindFolder(f.folder_id)) != null)
|
||||
{
|
||||
InventoryCollection Collection = new InventoryCollection();
|
||||
// ret.Collection.Folders = new List<InventoryFolderBase>();
|
||||
Collection.Folders = fold.RequestListOfFolders();
|
||||
Collection.Items = fold.RequestListOfItems();
|
||||
Collection.OwnerID = m_LibraryService.LibraryRootFolder.Owner;
|
||||
Collection.FolderID = f.folder_id;
|
||||
Collection.Version = fold.Version;
|
||||
|
||||
Collection.Descendents = Collection.Items.Count + Collection.Folders.Count;
|
||||
total_folders += Collection.Folders.Count;
|
||||
total_items += Collection.Items.Count;
|
||||
result.Add(Collection);
|
||||
|
||||
//m_log.DebugFormat("[XXX]: Added libfolder {0} ({1}) {2}", ret.Collection.FolderID, ret.Collection.OwnerID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<InventoryCollection> Fetch(List<LLSDFetchInventoryDescendents> fetchFolders, List<UUID> bad_folders, ref int total_folders, ref int total_items)
|
||||
private List<InventoryCollection> Fetch(List<LLSDFetchInventoryDescendents> fetchFolders, List<UUID> bad_folders)
|
||||
{
|
||||
//m_log.DebugFormat(
|
||||
// "[FETCH LIB DESC HANDLER]: Fetching {0} folders", fetchFolders.Count);
|
||||
|
||||
// FIXME MAYBE: We're not handling sortOrder!
|
||||
|
||||
List<InventoryCollection> result = new List<InventoryCollection>(32);
|
||||
List<LLSDFetchInventoryDescendents> libFolders = new List<LLSDFetchInventoryDescendents>(32);
|
||||
int cntr = fetchFolders.Count;
|
||||
List<InventoryCollection> result = new List<InventoryCollection>(cntr);
|
||||
List<LLSDFetchInventoryDescendents> libFolders = new List<LLSDFetchInventoryDescendents>(cntr);
|
||||
HashSet<UUID> libIDs = new HashSet<UUID>();
|
||||
UUID libOwner = m_LibraryService.LibraryRootFolder.Owner;
|
||||
|
||||
|
||||
// Filter folder Zero right here. Some viewers (Firestorm) send request for folder Zero, which doesn't make sense
|
||||
// and can kill the sim (all root folders have parent_id Zero)
|
||||
// send something.
|
||||
@@ -328,7 +297,7 @@ namespace OpenSim.Capabilities.Handlers
|
||||
InventoryCollection Collection = new InventoryCollection()
|
||||
{
|
||||
OwnerID = f.owner_id,
|
||||
Version = 0,
|
||||
Version = -1,
|
||||
FolderID = f.folder_id,
|
||||
Descendents = 0
|
||||
};
|
||||
@@ -345,17 +314,30 @@ namespace OpenSim.Capabilities.Handlers
|
||||
}
|
||||
}
|
||||
|
||||
if(libFolders.Count > 0)
|
||||
if (libFolders.Count > 0)
|
||||
{
|
||||
AddLibraryFolders(libFolders, result, ref total_folders, ref total_items);
|
||||
foreach (LLSDFetchInventoryDescendents f in libFolders)
|
||||
{
|
||||
InventoryFolderImpl fold = m_LibraryService.LibraryRootFolder.FindFolder(f.folder_id);
|
||||
if (fold != null)
|
||||
{
|
||||
InventoryCollection Collection = new InventoryCollection()
|
||||
{
|
||||
Folders = fold.RequestListOfFolders(),
|
||||
Items = fold.RequestListOfItems(),
|
||||
OwnerID = m_LibraryService.LibraryRootFolder.Owner,
|
||||
FolderID = f.folder_id,
|
||||
Version = fold.Version
|
||||
};
|
||||
Collection.Descendents = Collection.Items.Count + Collection.Folders.Count;
|
||||
result.Add(Collection);
|
||||
//m_log.DebugFormat("[XXX]: Added libfolder {0} ({1}) {2}", ret.Collection.FolderID, ret.Collection.OwnerID);
|
||||
}
|
||||
else
|
||||
bad_folders.Add(f.folder_id);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private bool BadFolder(LLSDFetchInventoryDescendents freq, InventoryCollection contents, List<UUID> bad_folders)
|
||||
{
|
||||
bad_folders.Add(freq.folder_id);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenSim.Framework
|
||||
{
|
||||
public class InventoryFolderImpl : InventoryFolderBase
|
||||
{
|
||||
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
//private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public static readonly string PATH_DELIMITER = "/";
|
||||
|
||||
@@ -77,12 +77,14 @@ namespace OpenSim.Framework
|
||||
{
|
||||
if (!m_childFolders.ContainsKey(folderID))
|
||||
{
|
||||
InventoryFolderImpl subFold = new InventoryFolderImpl();
|
||||
subFold.Name = folderName;
|
||||
subFold.ID = folderID;
|
||||
subFold.Type = (short)type;
|
||||
subFold.ParentID = this.ID;
|
||||
subFold.Owner = Owner;
|
||||
InventoryFolderImpl subFold = new InventoryFolderImpl()
|
||||
{
|
||||
Name = folderName,
|
||||
ID = folderID,
|
||||
Type = (short)type,
|
||||
ParentID = this.ID,
|
||||
Owner = Owner
|
||||
};
|
||||
m_childFolders.Add(subFold.ID, subFold);
|
||||
|
||||
return subFold;
|
||||
@@ -122,14 +124,11 @@ namespace OpenSim.Framework
|
||||
/// <returns>The folder if it exists, null if it doesn't</returns>
|
||||
public InventoryFolderImpl GetChildFolder(UUID folderID)
|
||||
{
|
||||
InventoryFolderImpl folder = null;
|
||||
|
||||
lock (m_childFolders)
|
||||
{
|
||||
m_childFolders.TryGetValue(folderID, out folder);
|
||||
m_childFolders.TryGetValue(folderID, out InventoryFolderImpl folder);
|
||||
return folder;
|
||||
}
|
||||
|
||||
return folder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -141,18 +140,15 @@ namespace OpenSim.Framework
|
||||
/// </returns>
|
||||
public InventoryFolderImpl RemoveChildFolder(UUID folderID)
|
||||
{
|
||||
InventoryFolderImpl removedFolder = null;
|
||||
|
||||
lock (m_childFolders)
|
||||
{
|
||||
if (m_childFolders.ContainsKey(folderID))
|
||||
if (m_childFolders.TryGetValue(folderID, out InventoryFolderImpl removedFolder))
|
||||
{
|
||||
removedFolder = m_childFolders[folderID];
|
||||
m_childFolders.Remove(folderID);
|
||||
return removedFolder;
|
||||
}
|
||||
}
|
||||
|
||||
return removedFolder;
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -178,10 +174,8 @@ namespace OpenSim.Framework
|
||||
{
|
||||
lock (Items)
|
||||
{
|
||||
if (Items.ContainsKey(itemID))
|
||||
{
|
||||
return Items[itemID];
|
||||
}
|
||||
if (Items.TryGetValue(itemID, out InventoryItemBase it))
|
||||
return it;
|
||||
}
|
||||
|
||||
lock (m_childFolders)
|
||||
@@ -189,14 +183,10 @@ namespace OpenSim.Framework
|
||||
foreach (InventoryFolderImpl folder in m_childFolders.Values)
|
||||
{
|
||||
InventoryItemBase item = folder.FindItem(itemID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -206,7 +196,7 @@ namespace OpenSim.Framework
|
||||
{
|
||||
foreach (InventoryItemBase item in Items.Values)
|
||||
{
|
||||
if (item.AssetID == assetID)
|
||||
if (item.AssetID.Equals(assetID))
|
||||
return item;
|
||||
}
|
||||
}
|
||||
@@ -216,11 +206,8 @@ namespace OpenSim.Framework
|
||||
foreach (InventoryFolderImpl folder in m_childFolders.Values)
|
||||
{
|
||||
InventoryItemBase item = folder.FindAsset(assetID);
|
||||
|
||||
if (item != null)
|
||||
{
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,31 +221,21 @@ namespace OpenSim.Framework
|
||||
/// <returns></returns>
|
||||
public bool DeleteItem(UUID itemID)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
lock (Items)
|
||||
{
|
||||
if (Items.ContainsKey(itemID))
|
||||
{
|
||||
Items.Remove(itemID);
|
||||
if (Items.Remove(itemID))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
lock (m_childFolders)
|
||||
{
|
||||
foreach (InventoryFolderImpl folder in m_childFolders.Values)
|
||||
{
|
||||
found = folder.DeleteItem(itemID);
|
||||
|
||||
if (found == true)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(folder.DeleteItem(itemID))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return found;
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -268,7 +245,7 @@ namespace OpenSim.Framework
|
||||
/// <returns>The requested folder if it exists, null if it does not.</returns>
|
||||
public InventoryFolderImpl FindFolder(UUID folderID)
|
||||
{
|
||||
if (folderID == ID)
|
||||
if (folderID.Equals(ID))
|
||||
return this;
|
||||
|
||||
lock (m_childFolders)
|
||||
@@ -276,12 +253,10 @@ namespace OpenSim.Framework
|
||||
foreach (InventoryFolderImpl folder in m_childFolders.Values)
|
||||
{
|
||||
InventoryFolderImpl returnFolder = folder.FindFolder(folderID);
|
||||
|
||||
if (returnFolder != null)
|
||||
return returnFolder;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -322,11 +297,10 @@ namespace OpenSim.Framework
|
||||
/// <returns>null if the folder is not found</returns>
|
||||
public InventoryFolderImpl FindFolderByPath(string path)
|
||||
{
|
||||
path = path.Trim();
|
||||
if (path.Length == 0)
|
||||
return this;
|
||||
|
||||
path = path.Trim();
|
||||
|
||||
if (path == PATH_DELIMITER)
|
||||
return this;
|
||||
|
||||
@@ -404,9 +378,9 @@ namespace OpenSim.Framework
|
||||
{
|
||||
foreach (InventoryItemBase item in Items.Values)
|
||||
{
|
||||
// m_log.DebugFormat(
|
||||
// "[INVENTORY FOLDER IMPL]: Returning item {0} {1}, OwnerPermissions {2:X}",
|
||||
// item.Name, item.ID, item.CurrentPermissions);
|
||||
//m_log.DebugFormat(
|
||||
// "[INVENTORY FOLDER IMPL]: Returning item {0} {1}, OwnerPermissions {2:X}",
|
||||
// item.Name, item.ID, item.CurrentPermissions);
|
||||
|
||||
itemList.Add(item);
|
||||
}
|
||||
@@ -422,7 +396,7 @@ namespace OpenSim.Framework
|
||||
/// </summary>
|
||||
public List<InventoryFolderBase> RequestListOfFolders()
|
||||
{
|
||||
List<InventoryFolderBase> folderList = new List<InventoryFolderBase>();
|
||||
List<InventoryFolderBase> folderList = new List<InventoryFolderBase>(m_childFolders.Count);
|
||||
|
||||
lock (m_childFolders)
|
||||
{
|
||||
@@ -437,7 +411,7 @@ namespace OpenSim.Framework
|
||||
|
||||
public List<InventoryFolderImpl> RequestListOfFolderImpls()
|
||||
{
|
||||
List<InventoryFolderImpl> folderList = new List<InventoryFolderImpl>();
|
||||
List<InventoryFolderImpl> folderList = new List<InventoryFolderImpl>(m_childFolders.Count);
|
||||
|
||||
lock (m_childFolders)
|
||||
{
|
||||
@@ -459,12 +433,10 @@ namespace OpenSim.Framework
|
||||
get
|
||||
{
|
||||
int total = Items.Count;
|
||||
|
||||
foreach (InventoryFolderImpl folder in m_childFolders.Values)
|
||||
{
|
||||
total = total + folder.TotalCount;
|
||||
total += folder.TotalCount;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ namespace OpenSim.Framework
|
||||
public double TerrainLowerLimit
|
||||
{
|
||||
get { return m_TerrainLowerLimit; }
|
||||
set { m_TerrainLowerLimit = Utils.Clamp(value, -200f, 0); ; }
|
||||
set { m_TerrainLowerLimit = Utils.Clamp(value, -200f, 0);}
|
||||
}
|
||||
|
||||
private bool m_UseEstateSun = true;
|
||||
|
||||
Reference in New Issue
Block a user