// Must follow sizeof(DBusMessageIter)
internal const int DBusMessageIterSize = 14*4;
and then it assumes it can use that many bytes to store a DBusMessageIter
in. Someone needs to be shot.
Note that changing it to "3*Marshal.SizeOf(typeof(IntPtr)) +
11*Marshal.SizeOf(typeof(int))" won't work either, because there ends up
being 4 bytes of padding before the final pointer.
This is still there. I probably should have mentioned before that this causes
I guess this is why I have the following error message (may be useful for searches):
*** glibc detected *** free(): invalid next size (fast): 0x00000000008770b0 ***
I usually don't like people begging ;), but _please_ have a look at this issue,
this makes the dbus + mono combo unusable on a 64bit box.
Created attachment 4495 [details] [review]
This fixes it even more explicitly than Dan's fix, to avoid any confusion about
where the size is coming from. Just another poke and 'why isn't this blatant 64
bit snafu fixed' query from me as well.
There's another AMD64 bug with regards to QT marshalling. Attaching a patch here
Created attachment 4530 [details] [review]
I just checked this in, but I'm not maintaining the mono bindings (no one is),
so you guys shouldn't wait on me for stuff like this in the future.