[Mono-dev] Possible regression from revision 141535 (metadata/class.c - Use inheritance-aware interface offsets)?

Bill Holmes billholmes54 at gmail.com
Mon Oct 12 10:06:09 EDT 2009


Sylvain,

Can you supply a sample?

-bill

On Sat, Oct 10, 2009 at 10:12 PM, Sylvain Dupont <duposyl at gmail.com> wrote:
> I have trouble running my application under mono on Windows (using the head
> of trunk). The following assert triggers at startup:
>
>     * Assertion at ..\mono\metadata\cominterop.c:356, condition `ic' not met
>
> This happens because the slot for the TestMethod method (method->slot==7)
> passed in argument to the cominterop_get_method_interface function is not
> available in the packed interface table:
>
> Packed interface table for class TestClass has size 2
>   [000][UUID 089][SLOT 006][SIZE  001] interface COMExampleLib.ITest
>   [001][UUID 090][SLOT 007][SIZE  000] interface COMExampleLib.Test
> [LEVEL 0] Implemented interfaces by class TestClass:
>   [UIID 89] interface ITest
>   [000][UUID 089][SLOT 006][SIZE  001] interface COMExampleLib.ITest
>   [UIID 90] interface Test
>   [001][UUID 090][SLOT 007][SIZE  000] interface COMExampleLib.Test
>   [UIID 89] interface ITest
>   [002][UUID 089][SLOT 006][SIZE  001] interface COMExampleLib.ITest
>
> I also attach the relevant section of the trace obtained by turning on
> DEBUG_INTERFACE_VTABLE_CODE/TRACE_INTERFACE_VTABLE_CODE/VERIFY_INTERFACE_VTABLE_CODE
> in class.c
>
> Now if I comment out the two lines added in revision 141535:
>
> --- class.c     (revision 143891)
> +++ class.c     (working copy)
> -               if ((cm->flags & METHOD_ATTRIBUTE_NEW_SLOT) && !(cm->flags &
> METHOD_ATTRIBUTE_FINAL) && cm->slot >= 0)
> -                       cm->slot = -1;
> +               //if ((cm->flags & METHOD_ATTRIBUTE_NEW_SLOT) && !(cm->flags
> & METHOD_ATTRIBUTE_FINAL) && cm->slot >= 0)
> +               //      cm->slot = -1;
>
> the slot for the TestMethod method becomes 6 and the
> cominterop_get_method_interface function works fine without asseting. My
> application also works with no issue.
>
> Any idea?
>
> Thanks!
>
> Sylvain
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>


More information about the Mono-devel-list mailing list