Posted
about 12 years
ago
by
[email protected]
(Calvin Rien)
I found krijesta's pull request which basically does exactly what I need. [link] I got that working with the 2.10 version of Gendarme and I'm happy. [link] Thanks, Calvin
|
Posted
about 12 years
ago
by
[email protected]
(Calvin Rien)
I'm getting the AvoidUnusedPrivateFieldsRule warning in a coroutine that is definitely using the variable. Here's the chunk of code causing the warning. [link]
|
Posted
about 12 years
ago
by
[email protected]
(Calvin Rien)
Weird that I would find this post exactly a year and a day later. Was this feature request ever entered/addressed? I'm using Gendarme with the Unity engine (Mono FTW), which calls specific private methods of MonoBehaviours via reflection. This means these methods should never generate Gendarme.Rules.Performance.Avo idUncalledPrivateCodeRule,
|
Posted
about 12 years
ago
by
[email protected]
(Sebastien Pouliot)
Hello Alik, Gendarme official releases occurs at the same time as Mono releases. The beta cycle for 2.11 should start soon - but we're a few months away from a stable 2.12. Sebastien
|
Posted
about 12 years
ago
by
[email protected]
(Alik Kurdyukov)
Jb, Thank you for hotfixing the problem. Do you have any dates for next Gendarme release?
|
Posted
about 12 years
ago
by
[email protected]
(Jb Evain)
I see, This is a Microsoft C# compiler bug: [link] They emit managed methods which claim to be managed but are actually implemented by the runtime. Not that they care a lot. I committed a fix to gendarme
|
Posted
about 12 years
ago
by
[email protected]
(Alik Kurdyukov)
Thank you for code sample. For my assembly it gives: Method with empty body: System.Void P2ClientGateMTA.IP2Connection: :_VtblGap1_1() Method with empty body: System.Void P2ClientGateMTA.IP2Connection: :_VtblGap2_5() Method with empty body:
|
Posted
about 12 years
ago
by
[email protected]
(Jb Evain)
You can run on your assembly a piece of code using Cecil like: var module = ModuleDefinition.ReadModule("M yAssembly.dll"); foreach (var method in module.GetTypes().SelectMany(t => t.Methods).Where(m => m.HasBody && m.Body.Instructions.Count == 0)) { Console.WriteLine ("Method with empty body: {0}", method);
|
Posted
about 12 years
ago
by
[email protected]
(Alik Kurdyukov)
Hey, I'm not sure I understand what's HasBody flag for methods. How can I check the assumption? The assembly that crashed Gendarme includes 'native' code with ".custom" marks on methods. ILDASM show no disassemblies for them. For ex: .class interface public abstract auto ansi import P2ClientGateMTA.IP2BLMessage
|
Posted
about 12 years
ago
by
[email protected]
(Jb Evain)
Hey, This stack trace seems to indicate that you have a method with the HasBody flag, but which doesn't have any Instruction. Could you verify that this assumption is true? I'll fix gendarme to not crash on this anyway. Jb
|