Browse Source

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

UbitUmarov 1 tháng trước cách đây
mục cha
commit
c10747e1ea
1 tập tin đã thay đổi với 7 bổ sung0 xóa
  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);
             }