Parcourir la source

mantis 9166: restore heapUsedFieldInfo also on method exit via state statement

UbitUmarov il y a 1 mois
Parent
commit
c10747e1ea
1 fichiers modifiés avec 7 ajouts et 0 suppressions
  1. 7 0
      OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs

+ 7 - 0
OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs

@@ -2516,6 +2516,13 @@ namespace OpenSim.Region.ScriptEngine.Yengine
             }
             else
             {
+                if (curDeclFunc.fullName != "$globalvarinit()")
+                {
+                    PushXMRInst();
+                    ilGen.Emit(curDeclFunc, OpCodes.Ldloc, curHeapSize);
+                    ilGen.Emit(curDeclFunc, OpCodes.Stfld, heapUsedFieldInfo);
+                }
+
                 ilGen.Emit(stateStmt, OpCodes.Ldc_I4, index);  // new state's index
                 ilGen.Emit(stateStmt, OpCodes.Newobj, scriptChangeStateExceptionConstructorInfo);
             }