aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2018-03-09 22:44:58 +0000
committerUbitUmarov2018-03-09 22:44:58 +0000
commit2369ce413d7d6e2b5b368ef11239263eec5eac74 (patch)
treea47b9faf126b4cd4bca962a1aa43e062b3d64272
parentremove a unnecessay file check (diff)
downloadopensim-SC-2369ce413d7d6e2b5b368ef11239263eec5eac74.zip
opensim-SC-2369ce413d7d6e2b5b368ef11239263eec5eac74.tar.gz
opensim-SC-2369ce413d7d6e2b5b368ef11239263eec5eac74.tar.bz2
opensim-SC-2369ce413d7d6e2b5b368ef11239263eec5eac74.tar.xz
Yengine: only retry compile if there was a object file in cache with wrong version or signature
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/YEngine/MMRScriptCompile.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/YEngine/MMRScriptObjCode.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs2
4 files changed, 6 insertions, 18 deletions
diff --git a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs
index 8bcb995..5f00f86 100644
--- a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs
+++ b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs
@@ -6540,14 +6540,8 @@ namespace OpenSim.Region.ScriptEngine.Yengine
6540 6540
6541 public class CVVMismatchException: Exception 6541 public class CVVMismatchException: Exception
6542 { 6542 {
6543 public int oldcvv; 6543 public CVVMismatchException(string msg) : base(msg)
6544 public int newcvv;
6545
6546 public CVVMismatchException(int oldcvv, int newcvv) : base("object version is " + oldcvv.ToString() +
6547 " but accept only " + newcvv.ToString())
6548 { 6544 {
6549 this.oldcvv = oldcvv;
6550 this.newcvv = newcvv;
6551 } 6545 }
6552 } 6546 }
6553} 6547}
diff --git a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCompile.cs b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCompile.cs
index bb5fdf7..f37efd4 100644
--- a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCompile.cs
+++ b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCompile.cs
@@ -124,13 +124,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine
124 finally 124 finally
125 { 125 {
126 // In case something went wrong writing temp file, delete it. 126 // In case something went wrong writing temp file, delete it.
127 try 127 File.Delete (tmpFileName);
128 {
129 File.Delete (tmpFileName);
130 }
131 catch
132 {
133 }
134 } 128 }
135 129
136 // Since we just wrote the .xmrobj file, maybe save disassembly. 130 // Since we just wrote the .xmrobj file, maybe save disassembly.
diff --git a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptObjCode.cs b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptObjCode.cs
index ba72e39..bbdec99 100644
--- a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptObjCode.cs
+++ b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptObjCode.cs
@@ -90,12 +90,12 @@ namespace OpenSim.Region.ScriptEngine.Yengine
90 // Check version number to make sure we know how to process file contents. 90 // Check version number to make sure we know how to process file contents.
91 char[] ocm = objFileReader.ReadChars(ScriptCodeGen.OBJECT_CODE_MAGIC.Length); 91 char[] ocm = objFileReader.ReadChars(ScriptCodeGen.OBJECT_CODE_MAGIC.Length);
92 if(new String(ocm) != ScriptCodeGen.OBJECT_CODE_MAGIC) 92 if(new String(ocm) != ScriptCodeGen.OBJECT_CODE_MAGIC)
93 throw new Exception("not an Yengine object file (bad magic)"); 93 throw new CVVMismatchException("Not an Yengine object file (bad magic)");
94 94
95 int cvv = objFileReader.ReadInt32(); 95 int cvv = objFileReader.ReadInt32();
96 if(cvv != ScriptCodeGen.COMPILED_VERSION_VALUE) 96 if(cvv != ScriptCodeGen.COMPILED_VERSION_VALUE)
97 throw new CVVMismatchException(cvv, ScriptCodeGen.COMPILED_VERSION_VALUE); 97 throw new CVVMismatchException(
98 98 "Object version is " + cvv.ToString() + " but accept only " + ScriptCodeGen.COMPILED_VERSION_VALUE.ToString());
99 // Fill in simple parts of scriptObjCode object. 99 // Fill in simple parts of scriptObjCode object.
100 sourceHash = objFileReader.ReadString(); 100 sourceHash = objFileReader.ReadString();
101 glblSizes.ReadFromFile(objFileReader); 101 glblSizes.ReadFromFile(objFileReader);
diff --git a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs
index 464fce3..45e4469 100644
--- a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs
+++ b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs
@@ -1283,7 +1283,7 @@ namespace OpenSim.Region.ScriptEngine.Yengine
1283 { 1283 {
1284 initerr = e1; 1284 initerr = e1;
1285 } 1285 }
1286 if((initerr != null) && !instance.m_ForceRecomp) 1286 if(initerr != null && !instance.m_ForceRecomp && initerr is CVVMismatchException)
1287 { 1287 {
1288 UUID itemID = instance.m_ItemID; 1288 UUID itemID = instance.m_ItemID;
1289 Verbose("[YEngine]: {0}/{2} first load failed ({1}), retrying after recompile", 1289 Verbose("[YEngine]: {0}/{2} first load failed ({1}), retrying after recompile",