[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