here is Jon's answer to my queries. Any more insights or clarifications are welcome.
> : I have a structure in my C# code. If > in my invocation, I pass a reference to this > structure. I want to know the size of the struct in > mono. I guess it pushes the "address" on to the stack. > But I want the size of the struct pointed to by the > address. > > Is there any way to get this. System.Runtime.InteropServices.Marshal.SizeOf(). :-) Though there's an important question: is this through P/Invoke or through an icall interface? And is it a C# struct or a C# class? For P/Invoke it doesn't matter, but for icalls the class will have the standard object header, which is 8 bytes in size IIRC. > mono_marshal_type_size doesnt seem to be the right > function.. Why not? > I dereferenced the pointer at the emit_native_wrapper > level as *(sig->params[i])->data.klass and the > instance size is shown as 24. where as my structre is > just has 4 in values i.e 16. Either your structure has padding issues, or you're within an icall interface passing a reference type, thus you'd have the object header to contend with. > If I need to copy this structure by value ...what size > should I be using = 16 or instance size of 24?? > If it is 16 : How can we get this in *mono* (not at > the C# program level). I lack the knowledge to answer this. - Jon __________________________________ Yahoo! Music Unlimited Access over 1 million songs. Try it free. http://music.yahoo.com/unlimited/ _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list