Author: nestor
Date: 2007-10-19 10:03:17 -0400 (Fri, 19 Oct 2007)
New Revision: 87828

Modified:
   trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/ChangeLog
   
trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
Log:
2007-10-19  Nestor Salceda  <[EMAIL PROTECTED]>
        
        * CloneMethodShouldNotReturnNullRule.cs: Fixed
        NullReferenceException when try to inspect a method without body.



Modified: trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/ChangeLog
===================================================================
--- trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/ChangeLog     
2007-10-19 13:36:40 UTC (rev 87827)
+++ trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/ChangeLog     
2007-10-19 14:03:17 UTC (rev 87828)
@@ -1,3 +1,8 @@
+2007-10-19  Nestor Salceda  <[EMAIL PROTECTED]>
+       
+       * CloneMethodShouldNotReturnNullRule.cs: Fixed NullReferenceException
+       when try to inspect a method without body.
+
 2007-10-16  Nestor Salceda  <[EMAIL PROTECTED]>
        
        * ToStringReturnsNullRule.cs: Fixed NullReferenceException when try

Modified: 
trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
===================================================================
--- 
trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
 2007-10-19 13:36:40 UTC (rev 87827)
+++ 
trunk/cecil/gendarme/rules/Gendarme.Rules.BadPractice/CloneMethodShouldNotReturnNullRule.cs
 2007-10-19 14:03:17 UTC (rev 87828)
@@ -48,7 +48,7 @@
                        MessageCollection messageCollection = new 
MessageCollection ();
                        if (ImplementsICloneable (type))
                                foreach (MethodDefinition method in 
type.Methods) 
-                                       if (method.Name == "Clone" && 
method.Parameters.Count == 0)
+                                       if (method.Name == "Clone" && 
method.Parameters.Count == 0 && method.HasBody)
                                                foreach (Instruction 
instruction in method.Body.Instructions) {
                                                        Instruction prevInstr = 
instruction.Previous;
                                                        if 
(instruction.OpCode.Name == "ret" && prevInstr.OpCode.Name == "ldnull") {
@@ -62,4 +62,4 @@
                        return messageCollection;
                }
        }
-}
\ No newline at end of file
+}

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to