summaryrefslogtreecommitdiffstats
path: root/mono/DBusType/ObjectPath.cs
diff options
context:
space:
mode:
Diffstat (limited to 'mono/DBusType/ObjectPath.cs')
-rw-r--r--mono/DBusType/ObjectPath.cs20
1 files changed, 11 insertions, 9 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);
}
}