Browse Source

Simplify check for addresses

pull/1600/head
Siegfried Pammer 6 years ago
parent
commit
fd24b5ea26
  1. 4
      ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs

4
ICSharpCode.Decompiler/IL/Transforms/NullCoalescingTransform.cs

@ -126,7 +126,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -126,7 +126,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
if (!(arg is CallInstruction call && NullableLiftingTransform.MatchHasValueCall(call, out ILInstruction target)))
return false;
ILVariable v = stloc.Variable;
if (v.Type is ByReferenceType byRefType && byRefType.ElementType.IsReferenceType == false) {
if (v.StackType == StackType.Ref) {
if (!(v.StoreCount == 1 && v.LoadCount == 2 && v.AddressCount == 0))
return false;
if (!target.MatchLdLoc(v))
@ -166,7 +166,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -166,7 +166,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
{
if (!matcher(input, out var loadInst))
return false;
if (v.Type is ByReferenceType) {
if (v.StackType == StackType.Ref) {
if (!loadInst.MatchLdLoc(v))
return false;
} else {

Loading…
Cancel
Save