Browse Source

#1336: Use delayed exceptions for Array.Get/Set.

We use this flag for the ldelem/stelem representation, so we need to also use
it for Get/Set on multi-dimensional arrays.
pull/1405/head
Daniel Grunwald 7 years ago
parent
commit
70138fa63d
  1. 4
      ICSharpCode.Decompiler/IL/ILReader.cs

4
ICSharpCode.Decompiler/IL/ILReader.cs

@ -1377,12 +1377,12 @@ namespace ICSharpCode.Decompiler.IL @@ -1377,12 +1377,12 @@ namespace ICSharpCode.Decompiler.IL
var target = arguments[0];
var value = arguments.Last();
var indices = arguments.Skip(1).Take(arguments.Length - 2).ToArray();
return new StObj(new LdElema(elementType, target, indices), value, elementType);
return new StObj(new LdElema(elementType, target, indices) { DelayExceptions = true }, value, elementType);
}
if (method.Name == "Get") {
var target = arguments[0];
var indices = arguments.Skip(1).ToArray();
return Push(new LdObj(new LdElema(elementType, target, indices), elementType));
return Push(new LdObj(new LdElema(elementType, target, indices) { DelayExceptions = true }, elementType));
}
if (method.Name == "Address") {
var target = arguments[0];

Loading…
Cancel
Save