diff options
Diffstat (limited to 'mono/DBusType')
| -rw-r--r-- | mono/DBusType/ObjectPath.cs | 20 | ||||
| -rw-r--r-- | mono/DBusType/String.cs | 21 | 
2 files changed, 22 insertions, 19 deletions
diff --git a/mono/DBusType/ObjectPath.cs b/mono/DBusType/ObjectPath.cs index 4f064d59..38952f4e 100644 --- a/mono/DBusType/ObjectPath.cs +++ b/mono/DBusType/ObjectPath.cs @@ -28,11 +28,10 @@ namespace DBus.DBusType      public ObjectPath(IntPtr iter, Service service)      { -      IntPtr raw; +      IntPtr raw_str = dbus_message_iter_get_object_path (iter); +      this.path = Marshal.PtrToStringAnsi (raw_str); +      dbus_free (raw_str); -      dbus_message_iter_get_basic (iter, out raw); - -      this.path = Marshal.PtrToStringAnsi (raw);        this.service = service;      } @@ -50,10 +49,10 @@ namespace DBus.DBusType      public void Append(IntPtr iter)       { -      IntPtr marshalVal = Marshal.StringToHGlobalAnsi (Path); +      IntPtr raw_str = Marshal.StringToHGlobalAnsi (Path); -      bool success = dbus_message_iter_append_basic (iter, (int) Code, ref marshalVal); -      Marshal.FreeHGlobal (marshalVal); +      bool success = dbus_message_iter_append_object_path (iter, raw_str); +      Marshal.FreeHGlobal (raw_str);        if (!success)  	throw new ApplicationException("Failed to append OBJECT_PATH argument:" + val); @@ -99,9 +98,12 @@ namespace DBus.DBusType      }      [DllImport("dbus-1")] -    private extern static void dbus_message_iter_get_basic (IntPtr iter, out IntPtr path); +    private extern static IntPtr dbus_message_iter_get_object_path(IntPtr iter);      [DllImport("dbus-1")] -    private extern static bool dbus_message_iter_append_basic (IntPtr iter, int type, ref IntPtr path); +    private extern static bool dbus_message_iter_append_object_path(IntPtr iter, IntPtr path); + +    [DllImport("dbus-1")] +    private extern static void dbus_free (IntPtr raw);    }  } diff --git a/mono/DBusType/String.cs b/mono/DBusType/String.cs index 3b619cfb..9d7502fa 100644 --- a/mono/DBusType/String.cs +++ b/mono/DBusType/String.cs @@ -25,19 +25,17 @@ namespace DBus.DBusType      public String(IntPtr iter, Service service)      { -      IntPtr raw; - -      dbus_message_iter_get_basic (iter, out raw); - -      this.val = Marshal.PtrToStringAnsi (raw); +      IntPtr raw_str = dbus_message_iter_get_string (iter); +      this.val = Marshal.PtrToStringAnsi (raw_str); +      dbus_free (raw_str);      }      public void Append(IntPtr iter)       { -      IntPtr marshalVal = Marshal.StringToHGlobalAnsi (val); +      IntPtr raw_str = Marshal.StringToHGlobalAnsi (val); -      bool success = dbus_message_iter_append_basic (iter, (int) Code, ref marshalVal); -      Marshal.FreeHGlobal (marshalVal); +      bool success = dbus_message_iter_append_string (iter, raw_str); +      Marshal.FreeHGlobal (raw_str);        if (!success)  	throw new ApplicationException("Failed to append STRING argument:" + val); @@ -87,9 +85,12 @@ namespace DBus.DBusType      }          [DllImport("dbus-1")] -    private extern static void dbus_message_iter_get_basic (IntPtr iter, out IntPtr value); +    private extern static IntPtr dbus_message_iter_get_string(IntPtr iter);      [DllImport("dbus-1")] -    private extern static bool dbus_message_iter_append_basic (IntPtr iter, int type, ref IntPtr value); +    private extern static bool dbus_message_iter_append_string(IntPtr iter, IntPtr value); + +    [DllImport("dbus-1")] +    private extern static void dbus_free (IntPtr raw);    }  }  | 
