Added RAIL.dll

Updated DotSets.dll and Mono.PEToolkit.dll
Started on microthreading - currently display exception during startup
afrisby
Tedd Hansen 2007-08-17 18:39:04 +00:00
parent 66695ded13
commit f2dd6c86f7
4 changed files with 43 additions and 1 deletions

View File

@ -190,7 +190,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
private string ProcessYield(string FileName) private string ProcessYield(string FileName)
{ {
// TODO: Create a new assembly and copy old but insert Yield Code // TODO: Create a new assembly and copy old but insert Yield Code
return FileName; return TempDotNetMicroThreadingCodeInjector.TestFix(FileName);
} }
private AppDomain GetFreeAppDomain() private AppDomain GetFreeAppDomain()

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Text;
using Rail.Transformation;
using Rail.Reflect;
using Rail.Exceptions;
using Rail.MSIL;
namespace OpenSim.Region.ScriptEngine.DotNetEngine
{
class TempDotNetMicroThreadingCodeInjector
{
public static string TestFix(string FileName)
{
string ret = System.IO.Path.GetFileNameWithoutExtension(FileName + "_fixed.dll");
Console.WriteLine("Loading: \"" + FileName + "\"");
RAssemblyDef rAssembly = RAssemblyDef.LoadAssembly(FileName);
//Get the type of the method to copy from assembly Teste2.exe to assembly Teste.exe
RTypeDef type = (RTypeDef)rAssembly.RModuleDef.GetType("SecondLife.Script");
//Get the methods in the type
RMethod[] m = type.GetMethods();
//Create a MethodPrologueAdder visitor object with the method to add
//and with the flag that enables local variable creation set to true
MethodPrologueAdder mpa = new MethodPrologueAdder((RMethodDef)m[0], true);
//Apply the changes to the assembly
rAssembly.Accept(mpa);
//Save the new assembly
rAssembly.SaveAssembly(ret);
return ret;
}
}
}

BIN
bin/RAIL.dll Normal file

Binary file not shown.

View File

@ -958,6 +958,7 @@
<Reference name="OpenSim.Region.Environment" /> <Reference name="OpenSim.Region.Environment" />
<Reference name="Axiom.MathLib.dll" localCopy="false"/> <Reference name="Axiom.MathLib.dll" localCopy="false"/>
<Reference name="libsecondlife.dll"/> <Reference name="libsecondlife.dll"/>
<Reference name="RAIL.dll"/>
<Reference name="OpenSim.Framework"/> <Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Console"/> <Reference name="OpenSim.Framework.Console"/>
<Files> <Files>