Thank you kindly, Melanie for a patch that avoids a null

ref in inventory give and also now causes items to appear
in the correct folders now, no longer in the root folder.
This commit is contained in:
Charles Krinke
2008-05-19 20:05:10 +00:00
parent 9808f39b6f
commit 01b5425a2d
2 changed files with 25 additions and 1 deletions

View File

@@ -485,6 +485,14 @@ namespace OpenSim.Framework.Communications.Cache
{
if (HasInventory)
{
if(item.Folder == LLUUID.Zero)
{
InventoryFolderImpl f=FindFolderForType(item.AssetType);
if(f != null)
item.Folder=f.ID;
else
item.Folder=RootFolder.ID;
}
ItemReceive(item);
m_commsManager.InventoryService.AddItem(item);
}
@@ -606,6 +614,22 @@ namespace OpenSim.Framework.Communications.Cache
return true;
}
}
private InventoryFolderImpl FindFolderForType(int type)
{
if(RootFolder == null)
return null;
lock(RootFolder.SubFolders)
{
foreach (InventoryFolderImpl f in RootFolder.SubFolders.Values)
{
if(f.Type == type)
return f;
}
}
return null;
}
}
/// <summary>