diff options
-rw-r--r-- | runtime/LocalVars.cs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/LocalVars.cs b/runtime/LocalVars.cs index 21f5399e..c546f0eb 100644 --- a/runtime/LocalVars.cs +++ b/runtime/LocalVars.cs @@ -464,8 +464,8 @@ struct LocalVarInfo // Now we recursively analyse the handler and afterwards merge the endfault locations back to us FindLocalVarState[] handlerState = new FindLocalVarState[instructions.Length]; - handlerState[handler].changed = true; - handlerState[handler].sites = new FindLocalVarStoreSite[maxLocals]; + handlerState[handler].Merge(curr); + curr = new FindLocalVarState(); FindLocalVariablesImpl(codeInfo, classFile, method, handlerState); // Merge back to the target of our __goto_finally @@ -476,7 +476,7 @@ struct LocalVarInfo && VerifierTypeWrapper.IsFaultBlockException(codeInfo.GetRawStackTypeWrapper(j, 0)) && ((VerifierTypeWrapper)codeInfo.GetRawStackTypeWrapper(j, 0)).Index == handler) { - state[instructions[i].Arg1].Merge(handlerState[j]); + curr.Merge(handlerState[j]); } } } |