From dc21e8d5e2c830311271ac5cafb0d166a571a74e Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Thu, 8 May 2008 13:41:10 +0000 Subject: * Applying patch #1121 - Fixes for llListen() (Thanks Middlelink!) --- .../Common/ScriptEngineBase/AsyncCommandPlugins/Listener.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase') diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Listener.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Listener.cs index 55dbabf..6a1235b 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Listener.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Listener.cs @@ -32,6 +32,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin { public class Listener { + // private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + public AsyncCommandManager m_CmdManager; public Listener(AsyncCommandManager CmdManager) @@ -49,22 +51,23 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin { while (comms.HasMessages()) { + ListenerInfo lInfo = comms.GetNextMessage(); if (m_CmdManager.m_ScriptEngine.m_ScriptManager.GetScript( - comms.PeekNextMessageLocalID(), comms.PeekNextMessageItemID()) != null) + lInfo.GetLocalID(), lInfo.GetItemID()) != null) { - ListenerInfo lInfo = comms.GetNextMessage(); - //Deliver data to prim's listen handler object[] resobj = new object[] { //lInfo.GetChannel(), lInfo.GetName(), lInfo.GetID().ToString(), lInfo.GetMessage() - new LSL_Types.LSLInteger(lInfo.GetChannel()), new LSL_Types.LSLString(lInfo.GetName()), new LSL_Types.LSLString(lInfo.GetSourceItemID().ToString()), new LSL_Types.LSLString(lInfo.GetMessage()) + new LSL_Types.LSLInteger(lInfo.GetChannel()), new LSL_Types.LSLString(lInfo.GetName()), new LSL_Types.LSLString(lInfo.GetID().ToString()), new LSL_Types.LSLString(lInfo.GetMessage()) }; m_CmdManager.m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( lInfo.GetLocalID(), lInfo.GetItemID(), "listen", EventQueueManager.llDetectNull, resobj ); } + // else + // m_log.Info("[ScriptEngineBase.AsyncCommandPlugins: received a listen event for a (no longer) existing script ("+lInfo.GetLocalID().AsString()+")"); } } } -- cgit v1.1