From 353673811b2213ee2fe9bd9aa38e4cd36c4fc354 Mon Sep 17 00:00:00 2001 From: de4dot Date: Sun, 18 Mar 2012 12:52:55 +0100 Subject: [PATCH] Fix problem where some WinForm property names weren't restored --- de4dot.code/renamer/TypeInfo.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/de4dot.code/renamer/TypeInfo.cs b/de4dot.code/renamer/TypeInfo.cs index 4040e438..858715ee 100644 --- a/de4dot.code/renamer/TypeInfo.cs +++ b/de4dot.code/renamer/TypeInfo.cs @@ -469,8 +469,6 @@ namespace de4dot.code.renamer { if (calledMethodDef == null) continue; fieldRef = getFieldReference(calledMethodDef.MethodDefinition); - if (fieldRef == null) - continue; var propDef = calledMethodDef.Property; if (propDef == null) @@ -510,6 +508,17 @@ namespace de4dot.code.renamer { if (ldfld == null || ldfld.OpCode.Code != Code.Ldfld) return null; var ret = DotNetUtils.getInstruction(instructions, ref index); + if (ret == null) + return null; + if (DotNetUtils.isStloc(ret)) { + var local = DotNetUtils.getLocalVar(method.Body.Variables, ret); + ret = DotNetUtils.getInstruction(instructions, ref index); + if (ret == null || !DotNetUtils.isLdloc(ret)) + return null; + if (DotNetUtils.getLocalVar(method.Body.Variables, ret) != local) + return null; + ret = DotNetUtils.getInstruction(instructions, ref index); + } if (ret == null || ret.OpCode.Code != Code.Ret) return null; return ldfld.Operand as FieldReference;