Browse Source

[catch-when] ILReader: add special case for exception filters: since eh.CatchType is not set, use System.Object instead.

pull/863/head
Siegfried Pammer 8 years ago
parent
commit
01660c4780
  1. 6
      ICSharpCode.Decompiler/IL/ILReader.cs

6
ICSharpCode.Decompiler/IL/ILReader.cs

@ -225,6 +225,12 @@ namespace ICSharpCode.Decompiler.IL @@ -225,6 +225,12 @@ namespace ICSharpCode.Decompiler.IL
};
variableByExceptionHandler.Add(eh, v);
ehStack = ImmutableStack.Create(v);
} else if (eh.HandlerType == Cil.ExceptionHandlerType.Filter) {
var v = new ILVariable(VariableKind.Exception, typeSystem.Compilation.FindType(KnownTypeCode.Object), eh.HandlerStart.Offset) {
Name = "E_" + eh.HandlerStart.Offset
};
variableByExceptionHandler.Add(eh, v);
ehStack = ImmutableStack.Create(v);
} else {
ehStack = ImmutableStack<ILVariable>.Empty;
}

Loading…
Cancel
Save