[Mono-bugs] [Bug 656008] New: cecil/light throws in MethodDefinition.PInvokeInfo

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Nov 25 14:04:21 EST 2010


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: jbevain at novell.com
        ReportedBy: spouliot at novell.com
         QAContact: mono-bugs at lists.ximian.com
          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.


More information about the mono-bugs mailing list