diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs index 63e18447fd..14343b15ef 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs @@ -128,7 +128,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine // Remove from internal list AppDomains.Remove(ads); #if DEBUG - long m = GC.GetTotalMemory(true); #endif // Unload diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs index d57b9ebc8f..90004b5c77 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs @@ -13,6 +13,7 @@ using rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion; namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL { + //[Serializable] public class LSL_BaseClass : MarshalByRefObject, LSL_BuiltIn_Commands_Interface, IScript { diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs index 9c8c29a2e1..61a43e4c1d 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs @@ -67,10 +67,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine } public void OnRezScript(uint localID, LLUUID itemID, string script) { - // TODO: Add code to compile script and wire up script to object - // Either the script is a stand-alone entity with a reference to public host, - // Or the host has a reference to the script because it was in its inventory. - //myScriptEngine.myScriptManager.StartScript( // Path.Combine("ScriptEngines", "Default.lsl"), // new OpenSim.Region.Environment.Scenes.Scripting.NullScriptHost() diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 1944025ddd..71916b02a9 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -32,6 +32,8 @@ using System.Text; using System.Threading; using System.Reflection; using System.Runtime.Remoting; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Formatters.Binary; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Environment.Scenes.Scripting; using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; @@ -267,19 +269,19 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler(); // Compile (We assume LSL) FileName = LSLCompiler.CompileFromLSLText(Script); - Console.WriteLine("Compilation of " + FileName + " done"); + //Console.WriteLine("Compilation of " + FileName + " done"); // * Insert yield into code FileName = ProcessYield(FileName); #if DEBUG long before; - before = GC.GetTotalMemory(false); + before = GC.GetTotalMemory(true); #endif LSL_BaseClass CompiledScript; CompiledScript = m_scriptEngine.myAppDomainManager.LoadScript(FileName); #if DEBUG - Console.WriteLine("Script " + itemID + " occupies {0} bytes", GC.GetTotalMemory(false) - before); + Console.WriteLine("Script " + itemID + " occupies {0} bytes", GC.GetTotalMemory(true) - before); #endif // Add it to our script memstruct @@ -295,13 +297,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine CompiledScript.Start(LSLB); // Fire the first start-event - m_scriptEngine.myEventQueueManager.AddToObjectQueue(localID, "state_entry", new object[] { }); + m_scriptEngine.myEventQueueManager.AddToScriptQueue(localID, itemID, "state_entry", new object[] { }); } catch (Exception e) { - m_scriptEngine.Log.Error("ScriptEngine", "Error compiling script: " + e.ToString()); + //m_scriptEngine.Log.Error("ScriptEngine", "Error compiling script: " + e.ToString()); try { // DISPLAY ERROR INWORLD @@ -325,6 +327,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine // Stop script Console.WriteLine("Stop script localID: " + localID + " LLUID: " + itemID.ToString()); + // Stop long command on script m_scriptEngine.myLSLLongCmdHandler.RemoveScript(localID, itemID); @@ -332,6 +335,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine if (LSLBC == null) return; + // TEMP: First serialize it + //GetSerializedScript(localID, itemID); + + try { // Get AppDomain @@ -382,8 +389,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine public void GetSerializedScript(uint localID, LLUUID itemID) { // Serialize the script and return it - // Should not be a problem + System.IO.FileStream fs = System.IO.File.Create("SERIALIZED_SCRIPT_" + itemID); + BinaryFormatter b = new BinaryFormatter(); + b.Serialize(fs, GetScript(localID,itemID)); + fs.Close(); + + } public void PutSerializedScript(uint localID, LLUUID itemID) {