I just committed a fix to CVS. Please can you test if it works for you? - Dietmar
On Fri, 2003-01-10 at 14:34, J. Perkins wrote: > I am having trouble wrapping the X11 XNextEvent() function with Mono. > This problem appears to have been first reported by Everaldo Canuto > back > in September (http://makeashorterlink.com/?V60442903). I have not > tried > compiling X# but I assume it would have the same problem. > > The assert fires when trying to build an equivalent to the XEvent > class, > which is a union of structures. Passing an XEvent to a DllImport > causes > an assertion in marshal.c. This is using the 2003-Jan-09 snapshot on a > RH8 box. I could not find any mention of this problem in bugzilla, > even > though it was initially reported a few months ago. Is this a known > problem? If not I will file a new bug. The assertion message and the > sample code follows. > > Note that removing the second member from XEvent causes the problem to > disappear, it is the second [FieldOffset] that triggers the assert. > > Jason > 379 > > ** ERROR **: file marshal.c: line 803 (emit_struct_conv): assertion > failed: (msize > 0 && usize > 0) > > using System; > using System.Runtime.InteropServices; > > [StructLayout(LayoutKind.Sequential)] > public struct XAnyEvent > { > public int type; > } > > [StructLayout(LayoutKind.Sequential)] > public struct XEventPadding > { > int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; > } > > [StructLayout(LayoutKind.Explicit)] > public struct XEvent > { > [FieldOffset(0)] public XAnyEvent xany; > [FieldOffset(0)] private XEventPadding xpad; > } > > public class ExplicitBug > { > [DllImport("X11")] > static extern IntPtr XOpenDisplay(string name); > > [DllImport("X11")] > static extern int XNextEvent(IntPtr dpy, out XEvent xevent); > > static void Main() > { > IntPtr dpy = XOpenDisplay(null); > > XEvent evt = new XEvent(); > XNextEvent(dpy, out evt); > } > } > > > > > _______________________________________________ > Mono-list maillist - [EMAIL PROTECTED] > http://lists.ximian.com/mailman/listinfo/mono-list > _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
