refactor: In llGetNotecardLine() use existing GetInventoryItem() rather than inspecting a clone of the TaskInventory dictionary that was not cloned thread-safe

0.7.4.1
Justin Clark-Casey (justincc) 2012-07-04 22:00:39 +01:00
parent 1816ecb747
commit 2f998fce1f
1 changed files with 4 additions and 10 deletions

View File

@ -10558,20 +10558,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
TaskInventoryDictionary itemsDictionary = (TaskInventoryDictionary)m_host.TaskInventory.Clone();
UUID assetID = UUID.Zero; UUID assetID = UUID.Zero;
if (!UUID.TryParse(name, out assetID)) if (!UUID.TryParse(name, out assetID))
{ {
foreach (TaskInventoryItem item in itemsDictionary.Values) TaskInventoryItem item = m_host.Inventory.GetInventoryItem(name);
{
if (item.Type == 7 && item.Name == name) if (item != null && item.Type == 7)
{
assetID = item.AssetID; assetID = item.AssetID;
break;
}
}
} }
if (assetID == UUID.Zero) if (assetID == UUID.Zero)