From 746c6fb1a285134b68176d39fe28c90fe861fe2a Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 12 Jul 2008 00:06:45 +0000 Subject: Patch #9141 (Mantis #1655) Untangles llDie handling in XEngine, which resulted in a thread being aborted while executing inside of Scene. --- .../ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 +- OpenSim/Region/ScriptEngine/Shared/Helpers.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/ScriptEngine/Shared') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 4bf3e93..3fbe257 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -637,7 +637,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void llDie() { m_host.AddScriptLPS(1); - World.DeleteSceneObject(m_host.ParentGroup); + throw new SelfDeleteException(); } public double llGround(LSL_Types.Vector3 offset) diff --git a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs index 28a2173..cd1f2c5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs @@ -52,6 +52,20 @@ namespace OpenSim.Region.ScriptEngine.Shared } } + [Serializable] + public class SelfDeleteException : Exception + { + public SelfDeleteException() + { + } + + protected SelfDeleteException( + SerializationInfo info, + StreamingContext context) + { + } + } + public class DetectParams { public DetectParams() -- cgit v1.1