summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--mono/Arguments.cs21
2 files changed, 25 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ac2e4a9..ab8c1a41 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-09 Joe Shaw <joeshaw@novell.com
+
+ * mono/Arguments.cs: Fix a magic number in the mono bindings
+ that doesn't work on 64 bit arches. Patch from Peter Johanson.
+
2006-01-27 Robert McQueen <robot101@debian.org>
* glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
diff --git a/mono/Arguments.cs b/mono/Arguments.cs
index 61ae443f..25f89daf 100644
--- a/mono/Arguments.cs
+++ b/mono/Arguments.cs
@@ -10,7 +10,7 @@ namespace DBus
public class Arguments : IEnumerable, IDisposable
{
// Must follow sizeof(DBusMessageIter)
- internal const int DBusMessageIterSize = 14*4;
+ internal static readonly int DBusMessageIterSize = Marshal.SizeOf (typeof(_DBusMessageIter));
private static Hashtable dbusTypes = null;
private Message message;
private IntPtr appenderIter;
@@ -240,6 +240,25 @@ namespace DBus
return new ArgumentsEnumerator(this);
}
+ [StructLayout(LayoutKind.Sequential)]
+ private class _DBusMessageIter
+ {
+ IntPtr dummy1;
+ IntPtr dummy2;
+ int dummy3;
+ int dummy4;
+ int dummy5;
+ int dummy6;
+ int dummy7;
+ int dummy8;
+ int dummy9;
+ int dummy10;
+ int dummy11;
+ int pad1;
+ int pad2;
+ IntPtr pad3;
+ }
+
private class ArgumentsEnumerator : IEnumerator
{
private Arguments arguments;