From b7da2feedd3453525845618a2ade385b5dd6796d Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 12 May 2026 04:22:34 +0100 Subject: [PATCH] add cosmetics on AgentTransactionModule --- .../AssetTransactionModule.cs | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs index f294372e72..276ca21f92 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs @@ -35,6 +35,7 @@ using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using Mono.Addins; +using System.Runtime.InteropServices; namespace OpenSim.Region.CoreModules.Agent.AssetTransaction { @@ -109,16 +110,11 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction { lock (AgentTransactions) { - if (!AgentTransactions.ContainsKey(userID)) - { - AgentAssetTransactions transactions = - new AgentAssetTransactions(userID, m_Scene, - m_dumpAssetsToFile); + ref AgentAssetTransactions value = ref CollectionsMarshal.GetValueRefOrAddDefault(AgentTransactions, userID, out bool exists); + if (!exists) + value = new AgentAssetTransactions(userID, m_Scene, m_dumpAssetsToFile); - AgentTransactions.Add(userID, transactions); - } - - return AgentTransactions[userID]; + return value; } } @@ -213,8 +209,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction // "[ASSET TRANSACTION MODULE]: Called HandleTaskItemUpdateFromTransaction with item {0} in {1} for {2} in {3}", // item.Name, part.Name, remoteClient.Name, m_Scene.RegionInfo.RegionName); - AgentAssetTransactions transactions = - GetUserTransactions(remoteClient.AgentId); + AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId); transactions.RequestUpdateTaskInventoryItem(remoteClient, part, transactionID, item); @@ -243,9 +238,8 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction (AssetType)type == AssetType.Animation) && tempFile == false) { - ScenePresence avatar = null; Scene scene = (Scene)remoteClient.Scene; - scene.TryGetScenePresence(remoteClient.AgentId, out avatar); + scene.TryGetScenePresence(remoteClient.AgentId, out ScenePresence avatar); // check user level if (avatar != null)