From 78d593f3ff3becd2dfafc94f6bce36820a17bb30 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 18 Jun 2016 09:34:35 +0900 Subject: [PATCH] fix bug in StObj-ExpressionTransform --- ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs index 7cf33add2..b225b8775 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs @@ -123,7 +123,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms protected internal override void VisitStObj(StObj inst) { ILVariable v; - if (inst.Target.MatchLdLoca(out v) && TypeUtils.IsCompatibleTypeForMemoryAccess(v.Type, inst.Type) && inst.UnalignedPrefix == 0 && !inst.IsVolatile) { + if (inst.Target.MatchLdLoca(out v) && TypeUtils.IsCompatibleTypeForMemoryAccess(new ByReferenceType(v.Type), inst.Type) && inst.UnalignedPrefix == 0 && !inst.IsVolatile) { inst.ReplaceWith(new StLoc(v, inst.Value.Clone())); } base.VisitStObj(inst);