From: alan webb <alan_webb@us.ibm.com> & dr scofield <drscofield@xyzzyxyzzy.net>
This changeset fixes a rather nasty script compile bug that manifests itself under heavy load.0.6.3-post-fixes
parent
80759f708b
commit
4e1f060dd1
|
@ -71,9 +71,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
|
|
||||||
private string FilePrefix;
|
private string FilePrefix;
|
||||||
private string ScriptEnginesPath = "ScriptEngines";
|
private string ScriptEnginesPath = "ScriptEngines";
|
||||||
|
// mapping between LSL and C# line/column numbers
|
||||||
|
private Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> m_positionMap;
|
||||||
|
private ICodeConverter LSL_Converter;
|
||||||
|
|
||||||
|
// private object m_syncy = new object();
|
||||||
|
|
||||||
private static ICodeConverter LSL_Converter;
|
|
||||||
private static Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> m_positionMap; // mapping between LSL and C# line/column numbers
|
|
||||||
private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider();
|
private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider();
|
||||||
private static VBCodeProvider VBcodeProvider = new VBCodeProvider();
|
private static VBCodeProvider VBcodeProvider = new VBCodeProvider();
|
||||||
private static JScriptCodeProvider JScodeProvider = new JScriptCodeProvider();
|
private static JScriptCodeProvider JScodeProvider = new JScriptCodeProvider();
|
||||||
|
@ -89,6 +92,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
m_scriptEngine = scriptEngine;
|
m_scriptEngine = scriptEngine;
|
||||||
ReadConfig();
|
ReadConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool in_startup = true;
|
public bool in_startup = true;
|
||||||
public void ReadConfig()
|
public void ReadConfig()
|
||||||
{
|
{
|
||||||
|
@ -255,6 +259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
/// <returns>Filename to .dll assembly</returns>
|
/// <returns>Filename to .dll assembly</returns>
|
||||||
public string PerformScriptCompile(string Script, string asset)
|
public string PerformScriptCompile(string Script, string asset)
|
||||||
{
|
{
|
||||||
|
// lock(m_syncy)
|
||||||
m_positionMap = null;
|
m_positionMap = null;
|
||||||
|
|
||||||
string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine(
|
string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine(
|
||||||
|
@ -334,6 +339,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
LSL_Converter = (ICodeConverter)new CSCodeGenerator();
|
LSL_Converter = (ICodeConverter)new CSCodeGenerator();
|
||||||
compileScript = LSL_Converter.Convert(Script);
|
compileScript = LSL_Converter.Convert(Script);
|
||||||
|
|
||||||
|
// lock(m_syncy)
|
||||||
m_positionMap = ((CSCodeGenerator) LSL_Converter).PositionMap;
|
m_positionMap = ((CSCodeGenerator) LSL_Converter).PositionMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,6 +586,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
|
|
||||||
public KeyValuePair<int, int> FindErrorPosition(int line, int col)
|
public KeyValuePair<int, int> FindErrorPosition(int line, int col)
|
||||||
{
|
{
|
||||||
|
// lock(m_syncy)
|
||||||
return FindErrorPosition(line, col, m_positionMap);
|
return FindErrorPosition(line, col, m_positionMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -654,9 +661,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>>
|
public Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> LineMap()
|
||||||
LineMap()
|
|
||||||
{
|
{
|
||||||
|
// lock(m_syncy)
|
||||||
|
// {
|
||||||
if (m_positionMap == null)
|
if (m_positionMap == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
@ -667,6 +675,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
|
||||||
ret.Add(kvp, m_positionMap[kvp]);
|
ret.Add(kvp, m_positionMap[kvp]);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue