From 96dabca85b7112c68466f8ac668b9dc07e206ef8 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 1 Aug 2019 05:31:03 +0100 Subject: make sure XEngine does release script events when a script is destroyed --- OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 5 +---- OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 3 +++ 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 1ba74f4..8c880fc 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -1112,10 +1112,7 @@ namespace OpenSim.Region.Framework.Scenes m_part.RemFlag(PrimFlags.Scripted); } - if (type == (int)InventoryType.LSL) - m_part.aggregateScriptEvents(); // this also does full update - else - m_part.ScheduleFullUpdate(); + m_part.ScheduleFullUpdate(); m_part.TriggerScriptChangedEvent(Changed.INVENTORY); return type; diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 351fca9..ec2a24e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -490,6 +490,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance { ReleaseControls(); AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); + SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); + if (part != null) + part.RemoveScriptEvents(ItemID); } public void RemoveState() -- cgit v1.1