Browse Source

Disable broken code for calling methods on dereferenced pointers

pull/734/head
Daniel Grunwald 9 years ago
parent
commit
91a9af705f
  1. 8
      ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

8
ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

@ -868,10 +868,10 @@ namespace ICSharpCode.Decompiler.CSharp
.WithRR(new ThisResolveResult(member.DeclaringType, nonVirtualInvocation)); .WithRR(new ThisResolveResult(member.DeclaringType, nonVirtualInvocation));
} else { } else {
var translatedTarget = Translate(target); var translatedTarget = Translate(target);
if (member.DeclaringType.IsReferenceType == false) { // if (member.DeclaringType.IsReferenceType == false) {
// when accessing members on value types, ensure we use a reference and not a pointer // // when accessing members on value types, ensure we use a reference and not a pointer
translatedTarget = translatedTarget.ConvertTo(new ByReferenceType(member.DeclaringType), this); // translatedTarget = translatedTarget.ConvertTo(new ByReferenceType(member.DeclaringType), this);
} // }
if (translatedTarget.Expression is DirectionExpression) { if (translatedTarget.Expression is DirectionExpression) {
translatedTarget = translatedTarget.UnwrapChild(((DirectionExpression)translatedTarget).Expression); translatedTarget = translatedTarget.UnwrapChild(((DirectionExpression)translatedTarget).Expression);
} }

Loading…
Cancel
Save