From 000d5e8b93c865f7be21717a52a5a897b0ce3344 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 12 Jul 2008 21:03:12 +0000 Subject: [PATCH] * minor: just some null guards and name changes to make it clearer that prim count is actually a prim local id dispenser --- OpenSim/Region/Environment/Scenes/Scene.cs | 15 ++++++----- .../Scenes/SceneObjectPart.Inventory.cs | 6 ++--- .../Environment/Scenes/SceneObjectPart.cs | 1 - .../DotNetEngine/ScriptManager.cs | 25 ++++++++++++------- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d6bbb1fcc7..a0df9a18ea 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -72,8 +72,12 @@ namespace OpenSim.Region.Environment.Scenes public InnerScene m_innerScene; - // private Random Rand = new Random(); - private uint _primCount = 720000; + /// + /// The last allocated local prim id. When a new local id is requested, the next number in the sequence is + /// dispenced. + /// + private uint m_localId = 720000; + private readonly Mutex _primAllocateMutex = new Mutex(false); private int m_timePhase = 24; @@ -1493,16 +1497,15 @@ namespace OpenSim.Region.Environment.Scenes } /// - /// Returns a new unallocated primitive ID + /// Returns a new unallocated local primitive ID /// - /// A brand new primitive ID + /// A brand new local primitive ID public uint PrimIDAllocate() { uint myID; _primAllocateMutex.WaitOne(); - ++_primCount; - myID = _primCount; + myID = ++m_localId; _primAllocateMutex.ReleaseMutex(); return myID; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 0b4846443e..005d872a4a 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs @@ -182,10 +182,10 @@ namespace OpenSim.Region.Environment.Scenes } else { - m_taskInventory[item.ItemID].PermsMask = 0; - m_taskInventory[item.ItemID].PermsGranter = LLUUID.Zero; + m_taskInventory[item.ItemID].PermsMask = 0; + m_taskInventory[item.ItemID].PermsGranter = LLUUID.Zero; string script = Helpers.FieldToUTF8String(asset.Data); - m_parentGroup.Scene.EventManager.TriggerRezScript(LocalId,item.ItemID,script, startParam, postOnRez); + m_parentGroup.Scene.EventManager.TriggerRezScript(LocalId, item.ItemID,script, startParam, postOnRez); m_parentGroup.AddActiveScriptCount(1); ScheduleFullUpdate(); } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 685a3d59ef..8bf8575b98 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -141,7 +141,6 @@ namespace OpenSim.Region.Environment.Scenes public uint m_attachmentPoint = (byte)0; [XmlIgnore] public PhysicsVector m_rotationAxis = new PhysicsVector(1f,1f,1f); - [XmlIgnore] public bool m_undoing = false; diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 4e781e68b0..016d045735 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -38,16 +38,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine { public class ScriptManager : Common.ScriptEngineBase.ScriptManager { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public ScriptManager(Common.ScriptEngineBase.ScriptEngine scriptEngine) : base(scriptEngine) { base.m_scriptEngine = scriptEngine; } - private Compiler.LSL.Compiler LSLCompiler; - - private static readonly ILog m_log - = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - + private Compiler.LSL.Compiler LSLCompiler; public override void Initialize() { @@ -64,8 +62,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine public override void _StartScript(uint localID, LLUUID itemID, string Script, int startParam, bool postOnRez) { - m_scriptEngine.Log.Debug("[" + m_scriptEngine.ScriptEngineName + "]: ScriptManager StartScript: localID: " + localID + ", itemID: " + itemID); - + m_log.DebugFormat( + "[{0}]: ScriptManager StartScript: localID: {1}, itemID: {2}", + m_scriptEngine.ScriptEngineName, localID, itemID); //IScriptHost root = host.GetRoot(); @@ -74,14 +73,22 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine string CompiledScriptFile = String.Empty; SceneObjectPart m_host = World.GetSceneObjectPart(localID); + + if (null == m_host) + { + m_log.ErrorFormat( + "[{0}]: Could not get scene object part corresponding to localID {1} to start script", + m_scriptEngine.ScriptEngineName, localID); + + return; + } // Xantor 20080525: I need assetID here to see if we already compiled this one previously LLUUID assetID = LLUUID.Zero; TaskInventoryItem taskInventoryItem = new TaskInventoryItem(); - if (m_host.TaskInventory.TryGetValue(itemID,out taskInventoryItem)) + if (m_host.TaskInventory.TryGetValue(itemID, out taskInventoryItem)) assetID = taskInventoryItem.AssetID; - try { // Xantor 20080525 see if we already compiled this script this session, stop incessant recompiling on