https://bugzilla.novell.com/show_bug.cgi?id=656008

https://bugzilla.novell.com/show_bug.cgi?id=656008#c0


           Summary: cecil/light throws in MethodDefinition.PInvokeInfo
    Classification: Mono
           Product: Mono: Class Libraries
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Cecil
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: ---
           Blocker: ---


This occurs in
Gendarme.Rules.Interoperability.MarshalStringsInPInvokeDeclarationsRule:

            if (!method.IsPInvokeImpl || (method.PInvokeInfo == null))
                return RuleResult.DoesNotApply;

where IsPInvokeImpl returns true but PInvokeInfo throws.

The exception is thrown because the assembly contains a module reference
(extern) with an empty name (".module extern " as seen with reflector). That
makes Mixin.CheckName (in CustomAttribute.cs) throws an ArgumentException.

I did not check the spec but PEverify does not complain about it (not did the
older cecil). Remove this "empty-check" fix the issue in Gendarme without
causing any other side effects afaik.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to